From 8f1fabb9de333c7c9670ca60f6ae4218889d4514 Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Wed, 26 Jul 2017 12:08:35 +0200 Subject: [PATCH 01/14] Fixes that the cases of MySQL & SQLite affected the graph --- .../djrapitops/plan/utilities/metrics/BStats.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java b/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java index 1d7af2e26..8505ad550 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java @@ -39,7 +39,20 @@ public class BStats { addEnabledDisabledPie("gather_gmtimes", gatherGMTimes); addEnabledDisabledPie("gather_commands", gatherCommands); - String databaseType = Settings.DB_TYPE.toString(); + String databaseType = Settings.DB_TYPE.toString().toLowerCase(); + + switch (databaseType) { + case "mysql": + databaseType = "MySQL"; + break; + case "sqlite": + databaseType = "SQLite"; + break; + default: + databaseType = "No Database"; + break; + } + addStringSettingPie("database_type", databaseType); } From 322b81a28dfcf9010cb438ab8d5133b6f121caea Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Wed, 26 Jul 2017 12:56:01 +0200 Subject: [PATCH 02/14] Fixed command recognition --- .../djrapitops/plan/command/commands/AnalyzeCommand.java | 2 +- .../djrapitops/plan/command/commands/ReloadCommand.java | 4 ++-- .../djrapitops/plan/command/commands/SearchCommand.java | 7 ++++--- .../plan/data/listeners/PlanCommandPreprocessListener.java | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java index 2cb49b8aa..afb011cab 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java @@ -132,7 +132,7 @@ public class AnalyzeCommand extends SubCommand { sendLink(sender, url); } } - sender.sendMessage(Phrase.CMD_FOOTER + ""); + sender.sendMessage(Phrase.CMD_FOOTER.toString()); } @Deprecated // TODO Will be rewritten to the RslPlugin abstractions in the future. diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/ReloadCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/ReloadCommand.java index d05af963f..b5f9561d1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/ReloadCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/ReloadCommand.java @@ -23,7 +23,7 @@ public class ReloadCommand extends SubCommand { * @param plugin Current instance of Plan */ public ReloadCommand(Plan plugin) { - super("reload", CommandType.CONSOLE, Permissions.MANAGE.getPermission(), Phrase.CMD_USG_RELOAD + ""); + super("reload", CommandType.CONSOLE, Permissions.MANAGE.getPermission(), Phrase.CMD_USG_RELOAD.toString()); this.plugin = plugin; } @@ -33,7 +33,7 @@ public class ReloadCommand extends SubCommand { plugin.onDisable(); plugin.reloadConfig(); plugin.onEnable(); - sender.sendMessage(Phrase.RELOAD_COMPLETE + ""); + sender.sendMessage(Phrase.RELOAD_COMPLETE.toString()); return true; } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java index 6f4c42949..523be03d7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/SearchCommand.java @@ -5,14 +5,15 @@ import com.djrapitops.plugin.command.ISender; import com.djrapitops.plugin.command.SubCommand; import com.djrapitops.plugin.task.AbsRunnable; import com.djrapitops.plugin.utilities.FormattingUtils; -import java.util.Arrays; -import java.util.List; import main.java.com.djrapitops.plan.Permissions; import main.java.com.djrapitops.plan.Phrase; import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.utilities.Check; import main.java.com.djrapitops.plan.utilities.MiscUtils; +import java.util.Arrays; +import java.util.List; + /** * This subcommand is used to search for a user, and to view all matches' data. * @@ -57,7 +58,7 @@ public class SearchCommand extends SubCommand { } else { sender.sendMessage(Phrase.CMD_MATCH + "" + FormattingUtils.collectionToStringNoBrackets(names)); } - sender.sendMessage(Phrase.CMD_FOOTER + ""); + sender.sendMessage(Phrase.CMD_FOOTER.toString()); } finally { this.cancel(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanCommandPreprocessListener.java b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanCommandPreprocessListener.java index 143997743..4e74dee7a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanCommandPreprocessListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanCommandPreprocessListener.java @@ -49,14 +49,14 @@ public class PlanCommandPreprocessListener implements Listener { boolean combineCommandAliasesToMainCommand = Settings.COMBINE_COMMAND_ALIASES_TO_MAIN_COMMAND.isTrue(); if (doNotLogUnknownCommands || combineCommandAliasesToMainCommand) { - Command command = plugin.getServer().getPluginCommand(commandName); + Command command = plugin.getServer().getPluginCommand(commandName.substring(1, commandName.length())); if (command == null) { if (doNotLogUnknownCommands) { Log.debug("Ignored command, command is unknown"); return; } } else if (combineCommandAliasesToMainCommand) { - commandName = command.getName(); + commandName = "/" + command.getName(); } } @@ -66,6 +66,7 @@ public class PlanCommandPreprocessListener implements Listener { Log.debug("Ignored command, player had ignore permission."); return; } + handler.handleCommand(commandName); } } From 2a7ef0ab46ea673a29a9e09244d15e072daa0dfb Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Wed, 26 Jul 2017 15:21:43 +0200 Subject: [PATCH 03/14] Fixed some typos --- Plan/localization/locale_EN.txt | 94 +++++++++---------- .../main/java/com/djrapitops/plan/Phrase.java | 9 +- 2 files changed, 52 insertions(+), 51 deletions(-) diff --git a/Plan/localization/locale_EN.txt b/Plan/localization/locale_EN.txt index 780d4f491..9c759ad4e 100644 --- a/Plan/localization/locale_EN.txt +++ b/Plan/localization/locale_EN.txt @@ -1,6 +1,6 @@ ENABLED <> Player Analytics Enabled. DISABLED <> Player Analytics Disabled. -RELOAD_COMPLETE <> §a[Plan] Reload complete. +RELOAD_COMPLETE <> �a[Plan] Reload complete. CACHE_SAVE <> Saving cached data.. CACHE_ADD <> Added REPLACE0 to Cache. CACHE_REMOVE <> Cleared REPLACE0 from Cache. @@ -13,19 +13,19 @@ DB_CONNECTION_FAIL <> REPLACE0-Database Connection failed: REPLACE1 DB_ESTABLISHED <> REPLACE0-database connection established. DB_TYPE_DOES_NOT_EXIST <> That database type doesn't exist. DB_FAILURE_DISABLE <> Database initialization has failed, disabling Plan. -NOTIFY_EMPTY_IP <> §e[Plan] IP in server.properties is empty & AlternativeServerIP is not used, incorrect links will be given! -VERSION_NEW_AVAILABLE <> New Version (REPLACE0) is availible at https://www.spigotmc.org/resources/plan-player-analytics.32536/ +NOTIFY_EMPTY_IP <> �e[Plan] IP in server.properties is empty & AlternativeServerIP is not used, incorrect links will be given! +VERSION_NEW_AVAILABLE <> New Version (REPLACE0) is available at https://www.spigotmc.org/resources/plan-player-analytics.32536/ VERSION_LATEST <> You're running the latest version VERSION_CHECK_ERROR <> Failed to compare versions. VERSION_FAIL <> Failed to get newest version number. -USERNAME_NOT_VALID <> §c[Plan] This Player doesn't exist. -USERNAME_NOT_SEEN <> §c[Plan] This Player has not played on this server. -USERNAME_NOT_KNOWN <> §c[Plan] Player not found from the database. -GRABBING_DATA_MESSAGE <> »§2 Fetching data to cache.. +USERNAME_NOT_VALID <> �c[Plan] This Player doesn't exist. +USERNAME_NOT_SEEN <> �c[Plan] This Player has not played on this server. +USERNAME_NOT_KNOWN <> �c[Plan] Player not found from the database. +GRABBING_DATA_MESSAGE <> ��2 Fetching data to cache.. DEM_UNKNOWN <> Not Known NOT_IN_TOWN <> Not in a town NOT_IN_FAC <> Not in a faction -COMMAND_TIMEOUT <> §c[Plan] REPLACE0 Command timed out! Error most likely on console. +COMMAND_TIMEOUT <> �c[Plan] REPLACE0 Command timed out! Error most likely on console. ANALYSIS_START <> Analysis | Beginning analysis of user data.. ANALYSIS_BOOT_NOTIFY <> Analysis | Boot analysis in 30 seconds.. ANALYSIS_BOOT <> Analysis | Starting Boot Analysis.. @@ -36,44 +36,44 @@ ANALYSIS_FAIL_NO_DATA <> Analysis | Analysis failed, no data in the database. ANALYSIS_BEGIN_ANALYSIS <> Analysis | Data Fetched, beginning Analysis of data.. ANALYSIS_COMPLETE <> Analysis | Analysis Complete. DATA_CORRUPTION_WARN <> Some data might be corrupted: REPLACE0 -ERROR_NO_DATA_VIEW <> §eWebserver disabled but Alternative IP/PlanLite not used, no way to view data! -ERROR_WEBSERVER_OFF_ANALYSIS <> §e[Plan] This command can be only used if the webserver is running on this server. -ERROR_WEBSERVER_OFF_INSPECT <> §e[Plan] This command can be only used if webserver/planlite is enabled on this server. -MANAGE_ERROR_INCORRECT_PLUGIN <> §c[Plan] Plugin not supported: -MANAGE_PROCESS_START <> »§7 Processing data.. -MANAGE_ERROR_PLUGIN_NOT_ENABLED <> §c[Plan] Plugin is not enabled: -MANAGE_ERROR_INCORRECT_DB <> §c[Plan] Incorrect database! (sqlite/mysql accepted): -MANAGE_ERROR_SAME_DB <> §c[Plan] Can't move to the same database! -MANAGE_DATABASE_FAILURE <> §c[Plan] One of the databases was not initialized properly. -MANAGE_DB_CONFIG_REMINDER <> §e[Plan] Remember to swap to the new database and reload plugin -MANAGE_ERROR_NO_PLAYERS <> §c[Plan] Database has no player data! -MANAGE_ERROR_BACKUP_FILE_NOT_FOUND <> §c[Plan] Backup file doesn't exist! -MANAGE_MOVE_SUCCESS <> §a[Plan] All data moved successfully! -MANAGE_COPY_SUCCESS <> §a[Plan] All data copied successfully! -MANAGE_PROCESS_FAIL <> §c[Plan] Something went wrong while processing the data! -MANAGE_CLEAR_SUCCESS <> §a[Plan] All data cleared successfully! -MANAGE_REMOVE_SUCCESS <> §f» §2Data of §fREPLACE0§2 was removed from Database §fREPLACE1§2. -MANAGE_IMPORTING <> §f» §2 Importing Data.. -MANAGE_SUCCESS <> §f» §2 Success! -CMD_ANALYZE_HEADER <> §f»§2 Player Analytics - Analysis results -CMD_INSPECT_HEADER <> §f»§2 Player Analytics - Inspect results: -CMD_INFO_HEADER <> §f»§2 Player Analytics - Info -CMD_INFO_VERSION <> §7 •§2§2 Version: §7REPLACE0 -CMD_SEARCH_HEADER <> §f»§2 Player Analytics - Search results for: -CMD_HELP_HEADER <> §f»§2 Player Analytics - Help -CMD_MANAGE_HELP_HEADER <> §f»§2 Player Analytics - Managment Help -CMD_MANAGE_STATUS_HEADER <> §f»§2 Player Analytics - Database status -CMD_MANAGE_STATUS_ACTIVE_DB <> §7 •§2§2 Active Database: §7REPLACE0 +ERROR_NO_DATA_VIEW <> �eWebserver disabled but Alternative IP/PlanLite not used, no way to view data! +ERROR_WEBSERVER_OFF_ANALYSIS <> �e[Plan] This command can be only used if the webserver is running on this server. +ERROR_WEBSERVER_OFF_INSPECT <> �e[Plan] This command can be only used if webserver/planlite is enabled on this server. +MANAGE_ERROR_INCORRECT_PLUGIN <> �c[Plan] Plugin not supported: +MANAGE_PROCESS_START <> ��7 Processing data.. +MANAGE_ERROR_PLUGIN_NOT_ENABLED <> �c[Plan] Plugin is not enabled: +MANAGE_ERROR_INCORRECT_DB <> �c[Plan] Incorrect database! (sqlite/mysql accepted): +MANAGE_ERROR_SAME_DB <> �c[Plan] Can't move to the same database! +MANAGE_DATABASE_FAILURE <> �c[Plan] One of the databases was not initialized properly. +MANAGE_DB_CONFIG_REMINDER <> �e[Plan] Remember to swap to the new database and reload plugin +MANAGE_ERROR_NO_PLAYERS <> �c[Plan] Database has no player data! +MANAGE_ERROR_BACKUP_FILE_NOT_FOUND <> �c[Plan] Backup file doesn't exist! +MANAGE_MOVE_SUCCESS <> �a[Plan] All data moved successfully! +MANAGE_COPY_SUCCESS <> �a[Plan] All data copied successfully! +MANAGE_PROCESS_FAIL <> �c[Plan] Something went wrong while processing the data! +MANAGE_CLEAR_SUCCESS <> �a[Plan] All data cleared successfully! +MANAGE_REMOVE_SUCCESS <> �f� �2Data of �fREPLACE0�2 was removed from Database �fREPLACE1�2. +MANAGE_IMPORTING <> �f� �2 Importing Data.. +MANAGE_SUCCESS <> �f� �2 Success! +CMD_ANALYZE_HEADER <> �f��2 Player Analytics - Analysis results +CMD_INSPECT_HEADER <> �f��2 Player Analytics - Inspect results: +CMD_INFO_HEADER <> �f��2 Player Analytics - Info +CMD_INFO_VERSION <> �7 ��2�2 Version: �7REPLACE0 +CMD_SEARCH_HEADER <> �f��2 Player Analytics - Search results for: +CMD_HELP_HEADER <> �f��2 Player Analytics - Help +CMD_MANAGE_HELP_HEADER <> �f��2 Player Analytics - Managment Help +CMD_MANAGE_STATUS_HEADER <> �f��2 Player Analytics - Database status +CMD_MANAGE_STATUS_ACTIVE_DB <> �7 ��2�2 Active Database: �7REPLACE0 CMD_CLICK_ME <> Click Me -CMD_LINK <> §7 •§2 Link: §f -CMD_RESULTS_AVAILABLE <> §7 Results will be available for §fREPLACE0§7 minutes. -CMD_NO_RESULTS <> §7 •§2 No results for §7REPLACE0§2. -CMD_MATCH <> §7 Matching player: §f +CMD_LINK <> �7 ��2 Link: �f +CMD_RESULTS_AVAILABLE <> �7 Results will be available for �fREPLACE0�7 minutes. +CMD_NO_RESULTS <> �7 ��2 No results for �7REPLACE0�2. +CMD_MATCH <> �7 Matching player: �f CMD_USG_ANALYZE <> View the Server Analysis CMD_USG_HELP <> Show command list. CMD_USG_INFO <> View Version of Plan CMD_USG_INSPECT <> Inspect Player's Data -CMD_USG_MANAGE <> Database managment command +CMD_USG_MANAGE <> Database management command CMD_USG_MANAGE_BACKUP <> Backup a database to .db file CMD_USG_MANAGE_RESTORE <> Restore a database from a backup file CMD_USG_MANAGE_MOVE <> Copy data from one database to another & overwrite values @@ -82,7 +82,7 @@ CMD_USG_MANAGE_IMPORT <> Import Data from supported plugins to Active Database. CMD_USG_MANAGE_CLEAR <> Clear data from one database CMD_USG_MANAGE_REMOVE <> Remove players's data from the Active Database. CMD_USG_MANAGE_STATUS <> Check the status of the Active Database. -CMD_USG_MANAGE_HELP <> Show managment help. +CMD_USG_MANAGE_HELP <> Show management help. CMD_USG_MANAGE_HOTSWAP <> Hotswap to another database & restart the plugin CMD_USG_RELOAD <> Reload plugin config & save cached data CMD_USG_SEARCH <> Search for player @@ -101,11 +101,11 @@ WARN_REWRITE <> Data in REPLACE0-database will be rewritten! WARN_OVERWRITE <> Data in REPLACE0-database will be overwritten! WARN_OVERWRITE_SOME <> Some data in REPLACE0-database will be overwritten! WARN_REMOVE <> Data in REPLACE0-database will be removed! -COMMAND_SENDER_NOT_PLAYER <> §c[Plan] This command can be only used as a player. -COMMAND_REQUIRES_ARGUMENTS <> §c[Plan] Command requires arguments. REPLACE0 -COMMAND_ADD_CONFIRMATION_ARGUMENT <> §c[Plan] Add -a to confirm execution! REPLACE0 -COMMAND_REQUIRES_ARGUMENTS_ONE <> §c[Plan] Command requires one argument. -COMMAND_NO_PERMISSION <> §c[Plan] You do not have the required permmission. +COMMAND_SENDER_NOT_PLAYER <> �c[Plan] This command can be only used as a player. +COMMAND_REQUIRES_ARGUMENTS <> �c[Plan] Command requires arguments. REPLACE0 +COMMAND_ADD_CONFIRMATION_ARGUMENT <> �c[Plan] Add -a to confirm execution! REPLACE0 +COMMAND_REQUIRES_ARGUMENTS_ONE <> �c[Plan] Command requires one argument. +COMMAND_NO_PERMISSION <> �c[Plan] You do not have the required permission. <<<<<>>>>> WARN_INACCURATE <>
Data might be inaccurate, player has just registered.
BANNED <> | Banned diff --git a/Plan/src/main/java/com/djrapitops/plan/Phrase.java b/Plan/src/main/java/com/djrapitops/plan/Phrase.java index 8c3b24d93..036667561 100644 --- a/Plan/src/main/java/com/djrapitops/plan/Phrase.java +++ b/Plan/src/main/java/com/djrapitops/plan/Phrase.java @@ -1,12 +1,13 @@ package main.java.com.djrapitops.plan; +import org.bukkit.ChatColor; + import java.io.File; import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Scanner; -import org.bukkit.ChatColor; /** * Phrase contains every message that is used in placeholders or commands. The @@ -134,7 +135,7 @@ public enum Phrase { CMD_USG_INFO("View Version of Plan"), CMD_USG_INSPECT("Inspect Player's Data"), CMD_USG_QINSPECT("QuickInspect Player's Data"), - CMD_USG_MANAGE("Database managment command"), + CMD_USG_MANAGE("Database management command"), CMD_USG_MANAGE_BACKUP("Backup a database to .db file"), CMD_USG_MANAGE_RESTORE("Restore a database from a backup file"), CMD_USG_MANAGE_MOVE("Copy data from one database to another & overwrite values"), @@ -144,7 +145,7 @@ public enum Phrase { CMD_USG_MANAGE_CLEAN("Clear incorrect data from the database"), CMD_USG_MANAGE_REMOVE("Remove players's data from the Active Database."), CMD_USG_MANAGE_STATUS("Check the status of the Active Database."), - CMD_USG_MANAGE_HELP("Show managment help."), + CMD_USG_MANAGE_HELP("Show management help."), CMD_USG_MANAGE_HOTSWAP("Hotswap to another database & restart the plugin"), CMD_USG_RELOAD("Reload plugin config & save cached data"), CMD_USG_SEARCH("Search for player"), @@ -171,7 +172,7 @@ public enum Phrase { COMMAND_REQUIRES_ARGUMENTS(ChatColor.RED + "" + PREFIX + "Command requires arguments. REPLACE0"), COMMAND_ADD_CONFIRMATION_ARGUMENT(ChatColor.RED + "" + PREFIX + "Add -a to confirm execution! REPLACE0"), COMMAND_REQUIRES_ARGUMENTS_ONE(ChatColor.RED + "" + PREFIX + "Command requires one argument."), - COMMAND_NO_PERMISSION(ChatColor.RED + "" + PREFIX + "You do not have the required permmission."), + COMMAND_NO_PERMISSION(ChatColor.RED + "" + PREFIX + "You do not have the required permission."), ERROR_TOO_SMALL_QUEUE("Queue size is too small! (REPLACE0), change the setting to a higher number! (Currently REPLACE1)"); private String text; From 8186f06d96e5b123d18e92596d89ccab56583b97 Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Wed, 26 Jul 2017 15:46:19 +0200 Subject: [PATCH 04/14] Reformatted code --- Plan/Class Diagram.xml | 8 +- Plan/checkstyle.xml | 69 +- Plan/dependency-reduced-pom.xml | 359 +-- Plan/nbactions.xml | 4 +- Plan/pom.xml | 2 +- .../main/java/com/djrapitops/plan/Log.java | 8 +- .../java/com/djrapitops/plan/Permissions.java | 2 +- .../main/java/com/djrapitops/plan/Phrase.java | 52 +- .../main/java/com/djrapitops/plan/Plan.java | 60 +- .../java/com/djrapitops/plan/api/API.java | 54 +- .../djrapitops/plan/command/PlanCommand.java | 6 +- .../plan/command/commands/AnalyzeCommand.java | 10 +- .../plan/command/commands/InfoCommand.java | 10 +- .../plan/command/commands/InspectCommand.java | 2 +- .../plan/command/commands/ListCommand.java | 6 +- .../plan/command/commands/ManageCommand.java | 2 +- .../command/commands/QuickInspectCommand.java | 3 +- .../command/commands/RegisterCommand.java | 6 +- .../commands/RegisterCommandFilter.java | 10 +- .../commands/manage/ManageImportCommand.java | 2 +- .../commands/manage/ManageMoveCommand.java | 2 +- .../commands/manage/ManageStatusCommand.java | 14 +- .../commands/webuser/WebLevelCommand.java | 12 +- .../djrapitops/plan/data/AnalysisData.java | 33 +- .../com/djrapitops/plan/data/KillData.java | 6 +- .../com/djrapitops/plan/data/SessionData.java | 4 +- .../java/com/djrapitops/plan/data/TPS.java | 6 +- .../com/djrapitops/plan/data/UserData.java | 382 ++- .../plan/data/additional/AnalysisType.java | 30 +- .../plan/data/additional/HookHandler.java | 4 +- .../plan/data/additional/PluginData.java | 118 +- .../plan/data/analysis/ActivityPart.java | 38 +- .../plan/data/analysis/CommandUsagePart.java | 9 +- .../plan/data/analysis/GamemodePart.java | 16 +- .../plan/data/analysis/GeolocationPart.java | 6 +- .../plan/data/analysis/JoinInfoPart.java | 6 +- .../plan/data/analysis/KillPart.java | 6 +- .../plan/data/analysis/PlayerCountPart.java | 7 +- .../plan/data/analysis/PlaytimePart.java | 6 +- .../plan/data/analysis/RawData.java | 9 +- .../plan/data/analysis/TPSPart.java | 6 +- .../plan/data/cache/AnalysisCacheHandler.java | 5 +- .../plan/data/cache/DBCallableProcessor.java | 4 +- .../plan/data/cache/DataCacheHandler.java | 54 +- .../plan/data/cache/InspectCacheHandler.java | 2 +- .../plan/data/cache/SessionCache.java | 9 +- .../plan/data/cache/queue/Consumer.java | 7 +- .../data/cache/queue/DataCacheGetQueue.java | 4 +- .../data/cache/queue/DataCacheSaveQueue.java | 2 +- .../plan/data/cache/queue/Queue.java | 2 +- .../plan/data/cache/queue/Setup.java | 2 +- .../plan/data/handling/ChatHandling.java | 4 +- .../plan/data/handling/GamemodeHandling.java | 4 +- .../plan/data/handling/KillHandling.java | 11 +- .../plan/data/handling/LoginHandling.java | 14 +- .../plan/data/handling/LogoutHandling.java | 4 +- .../data/handling/importing/ImportUtils.java | 4 +- .../data/handling/importing/Importer.java | 18 +- .../importing/OfflinePlayerImporter.java | 3 +- .../plan/data/handling/info/ChatInfo.java | 4 +- .../plan/data/handling/info/DeathInfo.java | 3 +- .../plan/data/handling/info/GamemodeInfo.java | 5 +- .../plan/data/handling/info/HandlingInfo.java | 4 +- .../plan/data/handling/info/InfoType.java | 4 +- .../plan/data/handling/info/KickInfo.java | 3 +- .../plan/data/handling/info/KillInfo.java | 6 +- .../plan/data/handling/info/LoginInfo.java | 22 +- .../plan/data/handling/info/LogoutInfo.java | 10 +- .../plan/data/handling/info/ReloadInfo.java | 10 +- .../data/listeners/PlanPlayerListener.java | 8 +- .../plan/data/listeners/TPSCountTimer.java | 14 +- .../djrapitops/plan/database/Container.java | 4 +- .../com/djrapitops/plan/database/DBUtils.java | 5 +- .../djrapitops/plan/database/Database.java | 26 +- .../plan/database/databases/MySQLDB.java | 9 +- .../plan/database/databases/SQLDB.java | 19 - .../plan/database/databases/SQLiteDB.java | 7 +- .../plan/database/tables/CommandUseTable.java | 12 +- .../plan/database/tables/GMTimesTable.java | 38 +- .../plan/database/tables/IPsTable.java | 23 +- .../plan/database/tables/KillsTable.java | 24 +- .../plan/database/tables/LocationsTable.java | 29 +- .../plan/database/tables/NicknamesTable.java | 22 +- .../plan/database/tables/SecurityTable.java | 1 - .../plan/database/tables/SessionsTable.java | 9 - .../plan/database/tables/Table.java | 11 - .../plan/database/tables/UsersTable.java | 52 +- .../plan/database/tables/VersionTable.java | 10 +- .../plan/ui/html/DataRequestHandler.java | 3 +- .../com/djrapitops/plan/ui/html/Html.java | 62 +- .../ui/html/RecentPlayersButtonsCreator.java | 1 - .../ui/html/graphs/PunchCardGraphCreator.java | 2 - ...SessionLengthDistributionGraphCreator.java | 14 +- .../plan/ui/html/graphs/TPSGraphCreator.java | 5 +- .../html/tables/CommandUseTableCreator.java | 2 - .../ui/html/tables/KillsTableCreator.java | 2 - .../com/djrapitops/plan/ui/text/TextUI.java | 49 +- .../plan/ui/webserver/WebSocketServer.java | 13 +- .../response/AnalysisPageResponse.java | 4 +- .../webserver/response/ForbiddenResponse.java | 1 - .../response/InspectPageResponse.java | 4 +- .../response/InternalErrorResponse.java | 4 +- .../webserver/response/NotFoundResponse.java | 1 - .../response/PlayersPageResponse.java | 1 - .../response/PromptAuthorizationResponse.java | 1 - .../webserver/response/RedirectResponse.java | 1 - .../plan/ui/webserver/response/Response.java | 1 - .../djrapitops/plan/utilities/Benchmark.java | 3 - .../com/djrapitops/plan/utilities/Check.java | 8 +- .../plan/utilities/FormatUtils.java | 8 - .../djrapitops/plan/utilities/HtmlUtils.java | 14 +- .../plan/utilities/ManageUtils.java | 9 +- .../djrapitops/plan/utilities/MiscUtils.java | 11 +- .../plan/utilities/NewPlayerCreator.java | 3 +- .../plan/utilities/PassEncryptUtil.java | 54 +- .../plan/utilities/PlaceholderUtils.java | 1 - .../plan/utilities/analysis/Analysis.java | 13 +- .../utilities/analysis/AnalysisUtils.java | 11 - .../analysis/DouglasPeckerAlgorithm.java | 4 +- .../utilities/analysis/ExportUtility.java | 6 - .../plan/utilities/analysis/Line.java | 1 - .../plan/utilities/analysis/MathUtils.java | 6 +- .../HandlingInfoTimeComparator.java | 1 - .../utilities/comparators/MapComparator.java | 2 - .../comparators/PointComparator.java | 8 +- .../comparators/SessionDataComparator.java | 1 - .../utilities/comparators/TPSComparator.java | 4 +- .../UserDataLastPlayedComparator.java | 4 +- .../comparators/UserDataNameComparator.java | 4 +- .../comparators/WebUserComparator.java | 3 +- .../plan/utilities/metrics/Metrics.java | 161 +- .../plan/utilities/uuid/UUIDUtility.java | 3 - Plan/src/main/resources/analysis.html | 2289 +++++++++-------- Plan/src/main/resources/player.html | 938 ++++--- .../com/djrapitops/plan/PermissionsTest.java | 4 +- .../java/com/djrapitops/plan/PhraseTest.java | 4 +- .../com/djrapitops/plan/SettingsTest.java | 10 +- .../djrapitops/plan/data/KillDataTest.java | 7 +- .../djrapitops/plan/data/SessionDataTest.java | 5 +- .../java/com/djrapitops/plan/data/Tep.java | 1 - .../djrapitops/plan/data/UserDataTest.java | 5 - .../data/additional/AnalysisTypeTest.java | 4 +- .../plan/data/cache/DataCacheHandlerTest.java | 18 +- .../plan/data/cache/SessionCacheTest.java | 7 +- .../cache/queue/DataCacheClearQueueTest.java | 1 - .../cache/queue/DataCacheGetQueueTest.java | 3 - .../queue/DataCacheProcessQueueTest.java | 15 +- .../cache/queue/DataCacheSaveQueueTest.java | 11 +- .../plan/data/handling/ChatHandlingTest.java | 4 +- .../data/handling/GamemodeHandlingTest.java | 4 +- .../plan/data/handling/KillHandlingTest.java | 5 - .../plan/data/handling/LoginHandlingTest.java | 3 - .../data/handling/LogoutHandlingTest.java | 4 +- .../plan/data/handling/info/ChatInfoTest.java | 4 +- .../data/handling/info/DeathInfoTest.java | 5 +- .../data/handling/info/GamemodeInfoTest.java | 4 +- .../data/handling/info/HandlingInfoTest.java | 7 +- .../plan/data/handling/info/KickInfoTest.java | 5 +- .../plan/data/handling/info/KillInfoTest.java | 14 +- .../data/handling/info/LoginInfoTest.java | 3 - .../data/handling/info/LogoutInfoTest.java | 5 +- .../data/handling/info/ReloadInfoTest.java | 3 - .../djrapitops/plan/database/DBUtilsTest.java | 1 - .../plan/database/DatabaseTest.java | 11 - .../java/com/djrapitops/plan/ui/HtmlTest.java | 5 +- .../PlayerActivityGraphCreatorTest.java | 14 +- .../plan/utilities/FormatUtilsTest.java | 7 +- .../plan/utilities/HtmlUtilsTest.java | 3 - .../plan/utilities/ManageUtilsTest.java | 2 - .../plan/utilities/MiscUtilsTest.java | 7 +- .../plan/utilities/NewPlayerCreatorTest.java | 4 +- .../utilities/analysis/AnalysisUtilsTest.java | 1 - .../utilities/analysis/MathUtilsTest.java | 7 +- .../HandlingInfoTimeComparatorTest.java | 9 +- Plan/src/test/java/utils/MockUtils.java | 8 - Plan/src/test/java/utils/TestInit.java | 2 - 176 files changed, 2985 insertions(+), 2944 deletions(-) diff --git a/Plan/Class Diagram.xml b/Plan/Class Diagram.xml index eb7010ed1..1b97043a4 100644 --- a/Plan/Class Diagram.xml +++ b/Plan/Class Diagram.xml @@ -1,3 +1,7 @@ - - 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 + \ No newline at end of file diff --git a/Plan/checkstyle.xml b/Plan/checkstyle.xml index 249ae3d57..e04acdf0d 100644 --- a/Plan/checkstyle.xml +++ b/Plan/checkstyle.xml @@ -1,5 +1,6 @@ - + @@ -8,15 +9,15 @@ - - + + - - - - - + + + + + @@ -26,50 +27,50 @@ - + - - - - - - - + + + + + + + - + - - - + + + - - - - + + + + - + - - + + - - - + + + - - + + @@ -81,7 +82,7 @@ - + @@ -91,7 +92,7 @@ - + \ No newline at end of file diff --git a/Plan/dependency-reduced-pom.xml b/Plan/dependency-reduced-pom.xml index 5712fbced..3e8915339 100644 --- a/Plan/dependency-reduced-pom.xml +++ b/Plan/dependency-reduced-pom.xml @@ -1,182 +1,183 @@ - - 4.0.0 - com.djrapitops - Plan - 3.5.4 - - ${basedir}/src - clean package install - - - . - ${basedir}/src/main/resources - - *.yml - *.html - - - - ${project.name} - - - maven-compiler-plugin - 3.3 - - 1.8 - 1.8 - - - - maven-shade-plugin - 2.4.3 - - - package - - shade - - - - - - - org.powermock:* - org.javassist:* - com.thoughtworks.xstream:* - xmlpull:* - xpp3:* - org.objenesis:* - cglib:* - org.*:* - org.easymock:* - junit:* - - - - - - maven-jar-plugin - 2.6 - - - **/test/* - **/*/test/* - **/*/test.* - **/test/**/* - - - - - org.pitest - pitest-maven - 1.1.8 - - - main.java.com.djrapitops.plan.* - - - test.java.main.java.com.djrapitops.plan.* - - 1000 - - - - maven-checkstyle-plugin - 2.17 - - **/test/**/* - checkstyle.xml - - - - maven-javadoc-plugin - 2.10.4 - - test.* - - - - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - - org.spigotmc - spigot - 1.12-R0.1-SNAPSHOT - provided - - - org.powermock - powermock - 1.6.6 - pom - compile - - - org.powermock - powermock-api-mockito - 1.6.6 - compile - - - org.powermock - powermock-module-junit4 - 1.6.6 - compile - - - org.powermock - powermock-module-junit4-rule - 1.6.6 - compile - - - org.powermock - powermock-classloading-xstream - 1.6.6 - compile - - - org.mockito - mockito-core - 1.10.19 - compile - - - org.powermock - powermock-api-easymock - 1.6.6 - compile - - - org.easymock - easymock - 3.4 - compile - - - junit - junit - 4.12 - compile - - - org.hamcrest - hamcrest-core - 1.3 - test - - - - 1.8 - UTF-8 - 1.8 - + + 4.0.0 + com.djrapitops + Plan + 3.5.4 + + ${basedir}/src + clean package install + + + . + ${basedir}/src/main/resources + + *.yml + *.html + + + + ${project.name} + + + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + maven-shade-plugin + 2.4.3 + + + package + + shade + + + + + + + org.powermock:* + org.javassist:* + com.thoughtworks.xstream:* + xmlpull:* + xpp3:* + org.objenesis:* + cglib:* + org.*:* + org.easymock:* + junit:* + + + + + + maven-jar-plugin + 2.6 + + + **/test/* + **/*/test/* + **/*/test.* + **/test/**/* + + + + + org.pitest + pitest-maven + 1.1.8 + + + main.java.com.djrapitops.plan.* + + + test.java.main.java.com.djrapitops.plan.* + + 1000 + + + + maven-checkstyle-plugin + 2.17 + + **/test/**/* + checkstyle.xml + + + + maven-javadoc-plugin + 2.10.4 + + test.* + + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + org.spigotmc + spigot + 1.12-R0.1-SNAPSHOT + provided + + + org.powermock + powermock + 1.6.6 + pom + compile + + + org.powermock + powermock-api-mockito + 1.6.6 + compile + + + org.powermock + powermock-module-junit4 + 1.6.6 + compile + + + org.powermock + powermock-module-junit4-rule + 1.6.6 + compile + + + org.powermock + powermock-classloading-xstream + 1.6.6 + compile + + + org.mockito + mockito-core + 1.10.19 + compile + + + org.powermock + powermock-api-easymock + 1.6.6 + compile + + + org.easymock + easymock + 3.4 + compile + + + junit + junit + 4.12 + compile + + + org.hamcrest + hamcrest-core + 1.3 + test + + + + 1.8 + UTF-8 + 1.8 + diff --git a/Plan/nbactions.xml b/Plan/nbactions.xml index aaaee2e0c..a224df77b 100644 --- a/Plan/nbactions.xml +++ b/Plan/nbactions.xml @@ -46,7 +46,9 @@ org.codehaus.mojo:exec-maven-plugin:1.2.1:exec - -Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath com.djrapitops.nmplayer.NMPlayer + -Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath + com.djrapitops.nmplayer.NMPlayer + java true diff --git a/Plan/pom.xml b/Plan/pom.xml index a2eae970d..4c6c66101 100644 --- a/Plan/pom.xml +++ b/Plan/pom.xml @@ -1,5 +1,5 @@ - 4.0.0 com.djrapitops diff --git a/Plan/src/main/java/com/djrapitops/plan/Log.java b/Plan/src/main/java/com/djrapitops/plan/Log.java index 4689dadf4..2e5cb88ba 100644 --- a/Plan/src/main/java/com/djrapitops/plan/Log.java +++ b/Plan/src/main/java/com/djrapitops/plan/Log.java @@ -4,7 +4,7 @@ import java.util.Collection; /** * This class manages the messages going to the Console Logger. - * + *

* Methods of Abstract Plugin Framework log utility are used. * * @author Rsl1122 @@ -52,7 +52,7 @@ public class Log { * Logs trace of caught Exception to Errors.txt and notifies on console. * * @param source Class name the exception was caught in. - * @param e Throwable, eg NullPointerException + * @param e Throwable, eg NullPointerException */ public static void toLog(String source, Throwable e) { Plan.getInstance().getPluginLogger().toLog(source, e); @@ -62,7 +62,7 @@ public class Log { * Logs multiple caught Errors to Errors.txt. * * @param source Class name the exception was caught in. - * @param e Collection of Throwables, eg NullPointerException + * @param e Collection of Throwables, eg NullPointerException */ public static void toLog(String source, Collection e) { Plan.getInstance().getPluginLogger().toLog(source, e); @@ -71,7 +71,7 @@ public class Log { /** * Logs a message to the a given file with a timestamp. * - * @param message Message to log to Errors.txt [timestamp] Message + * @param message Message to log to Errors.txt [timestamp] Message * @param filename Name of the file to write to. */ public static void toLog(String message, String filename) { diff --git a/Plan/src/main/java/com/djrapitops/plan/Permissions.java b/Plan/src/main/java/com/djrapitops/plan/Permissions.java index 922c5140c..448d88572 100644 --- a/Plan/src/main/java/com/djrapitops/plan/Permissions.java +++ b/Plan/src/main/java/com/djrapitops/plan/Permissions.java @@ -44,7 +44,7 @@ public enum Permissions { /** * Returns the permission node in plugin.yml. - * + *

* Same as getPermission. * * @return permission node eg. plan.inspect diff --git a/Plan/src/main/java/com/djrapitops/plan/Phrase.java b/Plan/src/main/java/com/djrapitops/plan/Phrase.java index 036667561..6aefcf71e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/Phrase.java +++ b/Plan/src/main/java/com/djrapitops/plan/Phrase.java @@ -188,6 +188,32 @@ public enum Phrase { this.text = ""; } + static void loadLocale(File localeFile) { + try { + Scanner localeScanner = new Scanner(localeFile, "UTF-8"); + List localeRows = new ArrayList<>(); + while (localeScanner.hasNextLine()) { + String line = localeScanner.nextLine(); + if (!line.isEmpty()) { + if ("<<<<<>>>>>".equals(line)) { + break; + } + localeRows.add(line); + } + } + for (String localeRow : localeRows) { + try { + String[] split = localeRow.split(" <> "); + Phrase.valueOf(split[0]).setText(split[1]); + } catch (IllegalArgumentException e) { + Log.error("There is a miswritten line in locale on line " + localeRows.indexOf(localeRow)); + } + } + } catch (IOException e) { + + } + } + @Override public String toString() { return text; @@ -242,30 +268,4 @@ public enum Phrase { public void setColor(char colorCode) { this.color = ChatColor.getByChar(colorCode); } - - static void loadLocale(File localeFile) { - try { - Scanner localeScanner = new Scanner(localeFile, "UTF-8"); - List localeRows = new ArrayList<>(); - while (localeScanner.hasNextLine()) { - String line = localeScanner.nextLine(); - if (!line.isEmpty()) { - if ("<<<<<>>>>>".equals(line)) { - break; - } - localeRows.add(line); - } - } - for (String localeRow : localeRows) { - try { - String[] split = localeRow.split(" <> "); - Phrase.valueOf(split[0]).setText(split[1]); - } catch (IllegalArgumentException e) { - Log.error("There is a miswritten line in locale on line " + localeRows.indexOf(localeRow)); - } - } - } catch (IOException e) { - - } - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/Plan.java b/Plan/src/main/java/com/djrapitops/plan/Plan.java index de4c0d3f5..f8af8f992 100644 --- a/Plan/src/main/java/com/djrapitops/plan/Plan.java +++ b/Plan/src/main/java/com/djrapitops/plan/Plan.java @@ -52,7 +52,7 @@ import java.util.concurrent.ScheduledExecutorService; /** * Main class for Bukkit that manages the plugin. - * + *

* Everything can be accessed through this class. Use Plan.getInstance() to get * the initialised instance of Plan. * @@ -77,8 +77,32 @@ public class Plan extends BukkitPlugin { private int bootAnalysisTaskID = -1; /** - * OnEnable method. + * Used to get the PlanAPI. @see API * + * @return API of the current instance of Plan. + * @throws IllegalStateException If onEnable method has not been called on + * Plan and the instance is null. + */ + public static API getPlanAPI() throws IllegalStateException { + Plan instance = getInstance(); + if (instance == null) { + throw new IllegalStateException("Plugin not enabled properly, Singleton instance is null."); + } + return instance.api; + } + + /** + * Used to get the plugin-instance singleton. + * + * @return this object. + */ + public static Plan getInstance() { + return (Plan) getPluginInstance(Plan.class); + } + + /** + * OnEnable method. + *

* - Enables the plugin's subsystems. */ @Override @@ -182,7 +206,7 @@ public class Plan extends BukkitPlugin { /** * Disables the plugin. - * + *

* Stops the webserver, cancels all tasks and saves cache to the database. */ @Override @@ -233,7 +257,7 @@ public class Plan extends BukkitPlugin { /** * Initializes the database according to settings in the config. - * + *

* If database connection can not be established plugin is disabled. * * @return true if init was successful, false if not. @@ -414,7 +438,7 @@ public class Plan extends BukkitPlugin { /** * Used to get all possible database objects. - * + *

* #init() might need to be called in order for the object to function. * * @return Set containing the SqLite and MySQL objects. @@ -446,35 +470,11 @@ public class Plan extends BukkitPlugin { /** * Old method for getting the API. * - * @deprecated Use Plan.getPlanAPI() (static method) instead. * @return the Plan API. + * @deprecated Use Plan.getPlanAPI() (static method) instead. */ @Deprecated public API getAPI() { return api; } - - /** - * Used to get the PlanAPI. @see API - * - * @return API of the current instance of Plan. - * @throws IllegalStateException If onEnable method has not been called on - * Plan and the instance is null. - */ - public static API getPlanAPI() throws IllegalStateException { - Plan instance = getInstance(); - if (instance == null) { - throw new IllegalStateException("Plugin not enabled properly, Singleton instance is null."); - } - return instance.api; - } - - /** - * Used to get the plugin-instance singleton. - * - * @return this object. - */ - public static Plan getInstance() { - return (Plan) getPluginInstance(Plan.class); - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/api/API.java b/Plan/src/main/java/com/djrapitops/plan/api/API.java index a580e4e34..3ede27bb2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/api/API.java +++ b/Plan/src/main/java/com/djrapitops/plan/api/API.java @@ -25,20 +25,20 @@ import java.util.stream.Collectors; /** * This class contains the API methods. - * + *

* Methods can be called from Asynchronous task and are thread safe unless * otherwise stated. - * + *

* Use Plan.getPlanAPI() to get the API. - * + *

* More information about API methods can be found on GitHub. * * @author Rsl1122 - * @since 2.0.0 * @see PluginData * @see AnalysisType * @see DBCallableProcessor * @see HandlingInfo + * @since 2.0.0 */ public class API { @@ -65,12 +65,12 @@ public class API { /** * Add a source of plugin data to the Plugins tab on Analysis and/or Inspect * page. - * + *

* Refer to documentation on GitHub or Javadoc of PluginData to set-up a * data source that extends PluginData correctly. * * @param dataSource an object that extends PluginData-object, thus allowing - * Analysis and Inspect to manage the data of a plugin correctly. + * Analysis and Inspect to manage the data of a plugin correctly. * @see PluginData */ public void addPluginDataSource(PluginData dataSource) { @@ -81,10 +81,10 @@ public class API { /** * Used to get the link to InspectPage of a player. - * + *

* This method is useful if you have a table and want to link to the inspect * page. - * + *

* Html.LINK.parse("Link", "Playername") can be used to get a link * {@code Playername} * @@ -98,12 +98,12 @@ public class API { /** * Schedule a UserData object to be fetched from the database or cache if * the player is online. - * + *

* The data will not be cached if it is not already cached. * - * @param uuid UUID of the player. + * @param uuid UUID of the player. * @param processor Object implementing DBCallableProcessor, which - * process (UserData data) method will be called. + * process (UserData data) method will be called. */ public void scheduleForGet(UUID uuid, DBCallableProcessor processor) { plugin.getHandler().getUserDataForProcessing(processor, uuid, false); @@ -111,7 +111,7 @@ public class API { /** * Schedule a HandlingInfo object to be processed. - * + *

* UserData associated with the UUID of the HandlingInfo object will be * cached. * @@ -123,11 +123,11 @@ public class API { /** * Used to cache a UserData object. - * + *

* If data is already cached it will be overridden. * * @param data UserData object. Will be placed to the data.getUuid() key in - * the cache. + * the cache. */ public void placeDataToCache(UserData data) { plugin.getHandler().cache(data); @@ -135,7 +135,7 @@ public class API { /** * Used to save the cached data to the database. - * + *

* Should be only called from an Asynchronous thread. */ public void saveCachedData() { @@ -154,7 +154,7 @@ public class API { /** * Cache the UserData to InspectCache. - * + *

* Uses cache if data is cached or database if not. Call from an Asynchronous * thread. * @@ -166,7 +166,7 @@ public class API { /** * Used to get the full Html of the Inspect page as a string. - * + *

* Check if the data is cached to InspectCache before calling this. * * @param uuid UUID of the player. @@ -193,7 +193,7 @@ public class API { /** * Run's the analysis with the current data in the cache and fetches rest * from the database. - * + *

* Starts a new Asynchronous task to run the analysis. */ public void updateAnalysisCache() { @@ -202,7 +202,7 @@ public class API { /** * Used to get the full HTML of the Analysis page as a string. - * + *

* Check if the data is cached to AnalysisCache before calling this. * * @return analysis.html with all placeholders replaced. @@ -218,7 +218,7 @@ public class API { /** * Used to get the AnalysisData object. - * + *

* Check if the data is cached to AnalysisCache before calling this. * * @return AnalysisData object. @@ -234,8 +234,8 @@ public class API { * @param uuid UUID of the player. * @return Playername, eg "Rsl1122" * @throws IllegalArgumentException If uuid is null. - * @throws IllegalStateException If the player has not played on the server - * before. + * @throws IllegalStateException If the player has not played on the server + * before. */ public String getPlayerName(UUID uuid) throws IllegalStateException, IllegalArgumentException { Verify.nullCheck(uuid); @@ -259,7 +259,7 @@ public class API { /** * Get the saved UUIDs in the database. - * + *

* Should be called from async thread. * * @return Collection of UUIDs that can be found in the database. @@ -272,9 +272,9 @@ public class API { /** * Get the saved UserData in the database for a collection of UUIDs. - * + *

* Will not contain data for UUIDs not found in the database. - * + *

* Should be called from async thread. * * @param uuids Collection of UUIDs that can be found in the database. @@ -288,7 +288,7 @@ public class API { /** * Get the cached UserData objects in the InspectCache. - * + *

* This can be used with PluginData objects safely to get the data for all * users in Plan database, because all data is InspectCached before analysis * begins. @@ -302,7 +302,7 @@ public class API { /** * Get the cached UserData objects in the InspectCache in a Map form. - * + *

* This can be used with PluginData objects safely to get the data for all * users in Plan database, because all data is InspectCached before analysis * begins. diff --git a/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java index bf8c17817..cdd3edb5c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/PlanCommand.java @@ -9,9 +9,9 @@ import main.java.com.djrapitops.plan.command.commands.*; /** * TreeCommand for the /plan command, and all subcommands. - * + *

* Uses the Abstract Plugin Framework for easier command management. - * + * * @author Rsl1122 * @since 1.0.0 */ @@ -19,7 +19,7 @@ public class PlanCommand extends TreeCommand { /** * CommandExecutor class Constructor. - * + *

* Initializes Subcommands * * @param plugin Current instance of Plan diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java index afb011cab..b910d6421 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/AnalyzeCommand.java @@ -6,11 +6,7 @@ import com.djrapitops.plugin.command.CommandUtils; import com.djrapitops.plugin.command.ISender; import com.djrapitops.plugin.command.SubCommand; import com.djrapitops.plugin.task.AbsRunnable; -import main.java.com.djrapitops.plan.Log; -import main.java.com.djrapitops.plan.Permissions; -import main.java.com.djrapitops.plan.Phrase; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.Settings; +import main.java.com.djrapitops.plan.*; import main.java.com.djrapitops.plan.command.ConditionUtils; import main.java.com.djrapitops.plan.data.cache.AnalysisCacheHandler; import main.java.com.djrapitops.plan.ui.text.TextUI; @@ -110,7 +106,7 @@ public class AnalyzeCommand extends SubCommand { /** * Used to send the message after /plan analysis. - * + *

* Final because * * @param sender Command sender. @@ -140,6 +136,6 @@ public class AnalyzeCommand extends SubCommand { plugin.getServer().dispatchCommand( Bukkit.getConsoleSender(), "tellraw " + sender.getName() + " [\"\",{\"text\":\"" + Phrase.CMD_CLICK_ME + "\",\"underlined\":true," - + "\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + url + "\"}}]"); + + "\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + url + "\"}}]"); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java index c4d4d84de..9a59230f7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java @@ -34,11 +34,11 @@ public class InfoCommand extends SubCommand { public boolean onCommand(ISender sender, String commandLabel, String[] args) { ChatColor tColor = Phrase.COLOR_SEC.color(); String[] messages = { - Phrase.CMD_INFO_HEADER.toString(), - Phrase.CMD_INFO_VERSION.parse(plugin.getDescription().getVersion()), - Phrase.CMD_BALL.toString() + tColor + " " + Version.checkVersion(plugin), - Phrase.CMD_MANAGE_STATUS_ACTIVE_DB.parse(plugin.getDB().getConfigName()), - Phrase.CMD_FOOTER.toString() + Phrase.CMD_INFO_HEADER.toString(), + Phrase.CMD_INFO_VERSION.parse(plugin.getDescription().getVersion()), + Phrase.CMD_BALL.toString() + tColor + " " + Version.checkVersion(plugin), + Phrase.CMD_MANAGE_STATUS_ACTIVE_DB.parse(plugin.getDB().getConfigName()), + Phrase.CMD_FOOTER.toString() }; sender.sendMessage(messages); return true; diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java index d6d8383bc..f3bfd2dca 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java @@ -141,6 +141,6 @@ public class InspectCommand extends SubCommand { plugin.getServer().dispatchCommand( Bukkit.getConsoleSender(), "tellraw " + sender.getName() + " [\"\",{\"text\":\"" + Phrase.CMD_CLICK_ME + "\",\"underlined\":true," - + "\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + url + "\"}}]"); + + "\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + url + "\"}}]"); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/ListCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/ListCommand.java index 45de5380c..5ff7aabc4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/ListCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/ListCommand.java @@ -15,9 +15,9 @@ import org.bukkit.command.CommandException; /** * Command used to display link to the player list webpage. - * + *

* Subcommand is not registered if Webserver is not enabled. - * + * * @author Rsl1122 * @since 3.5.2 */ @@ -66,6 +66,6 @@ public class ListCommand extends SubCommand { plugin.getServer().dispatchCommand( Bukkit.getConsoleSender(), "tellraw " + sender.getName() + " [\"\",{\"text\":\"" + Phrase.CMD_CLICK_ME + "\",\"underlined\":true," - + "\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + url + "\"}}]"); + + "\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + url + "\"}}]"); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/ManageCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/ManageCommand.java index e3eb1df36..8cc6fa2b5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/ManageCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/ManageCommand.java @@ -9,7 +9,7 @@ import main.java.com.djrapitops.plan.command.commands.manage.*; /** * This command is used to manage the database of the plugin. - * + *

* No arguments will run ManageHelpCommand. Contains subcommands. * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/QuickInspectCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/QuickInspectCommand.java index 6cbb363e6..2f93744e9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/QuickInspectCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/QuickInspectCommand.java @@ -6,7 +6,6 @@ import com.djrapitops.plugin.command.ISender; import com.djrapitops.plugin.command.SubCommand; import com.djrapitops.plugin.task.AbsRunnable; import com.djrapitops.plugin.utilities.Verify; -import java.util.UUID; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Permissions; import main.java.com.djrapitops.plan.Phrase; @@ -18,6 +17,8 @@ import main.java.com.djrapitops.plan.utilities.Check; import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.uuid.UUIDUtility; +import java.util.UUID; + /** * This command is used to cache UserData to InspectCache and to view some of * the data in game. diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java index 1d007417f..93bf024d1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java @@ -17,11 +17,11 @@ import org.bukkit.ChatColor; /** * Command for registering web users. - * + *

* Registers a new webuser to the database. - * + *

* No permission required for self registration. (Constructor string is empty) - * + *

* plan.webmanage required for registering other users. * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommandFilter.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommandFilter.java index e099cff5c..658f1162c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommandFilter.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/RegisterCommandFilter.java @@ -5,7 +5,7 @@ import java.util.logging.LogRecord; /** * Filters out WebUser registration command logs. - * + * * @author Rsl1122 * @since 3.5.2 */ @@ -14,10 +14,10 @@ public class RegisterCommandFilter implements Filter { @Override public boolean isLoggable(LogRecord record) { String message = record.getMessage(); - boolean block = message.contains("command: /plan register") - || message.contains("command: /plan web register") - || message.contains("command: /plan webuser register"); + boolean block = message.contains("command: /plan register") + || message.contains("command: /plan web register") + || message.contains("command: /plan webuser register"); return !block; } - + } diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageImportCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageImportCommand.java index 671f422a3..c9dd9dadd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageImportCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageImportCommand.java @@ -21,7 +21,7 @@ import java.util.stream.Collectors; /** * This manage subcommand is used to import data from 3rd party plugins. - * + *

* Supported plugins (v3.0.0) : OnTime * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageMoveCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageMoveCommand.java index a91c2a744..45e4c7d9a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageMoveCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageMoveCommand.java @@ -18,7 +18,7 @@ import java.util.UUID; /** * This manage subcommand is used to move all data from one database to another. - * + *

* Destination database will be cleared. * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageStatusCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageStatusCommand.java index 149e52d07..38520607a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageStatusCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/manage/ManageStatusCommand.java @@ -30,13 +30,13 @@ public class ManageStatusCommand extends SubCommand { @Override public boolean onCommand(ISender sender, String commandLabel, String[] args) { String[] messages = new String[]{ - Phrase.CMD_MANAGE_STATUS_HEADER.toString(), - Phrase.CMD_MANAGE_STATUS_ACTIVE_DB.parse(plugin.getDB().getConfigName()), - Phrase.CMD_MANAGE_STATUS_QUEUE_PROCESS.parse("" + plugin.getHandler().getProcessTask().size()), - Phrase.CMD_MANAGE_STATUS_QUEUE_SAVE.parse("" + plugin.getHandler().getSaveTask().size()), - Phrase.CMD_MANAGE_STATUS_QUEUE_GET.parse("" + plugin.getHandler().getGetTask().size()), - Phrase.CMD_MANAGE_STATUS_QUEUE_CLEAR.parse("" + plugin.getHandler().getClearTask().size()), - Phrase.CMD_FOOTER.toString() + Phrase.CMD_MANAGE_STATUS_HEADER.toString(), + Phrase.CMD_MANAGE_STATUS_ACTIVE_DB.parse(plugin.getDB().getConfigName()), + Phrase.CMD_MANAGE_STATUS_QUEUE_PROCESS.parse("" + plugin.getHandler().getProcessTask().size()), + Phrase.CMD_MANAGE_STATUS_QUEUE_SAVE.parse("" + plugin.getHandler().getSaveTask().size()), + Phrase.CMD_MANAGE_STATUS_QUEUE_GET.parse("" + plugin.getHandler().getGetTask().size()), + Phrase.CMD_MANAGE_STATUS_QUEUE_CLEAR.parse("" + plugin.getHandler().getClearTask().size()), + Phrase.CMD_FOOTER.toString() }; sender.sendMessage(messages); diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/webuser/WebLevelCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/webuser/WebLevelCommand.java index 810070e63..56bccddf2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/webuser/WebLevelCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/webuser/WebLevelCommand.java @@ -29,12 +29,12 @@ public class WebLevelCommand extends SubCommand { String sCol = cs.getSecondaryColor(); String cmdBall = Phrase.CMD_BALL.parse(); String[] messages = new String[]{ - Phrase.CMD_FOOTER.parse(), - cmdBall + sCol + "0: Access all pages", - cmdBall + sCol + "1: Access '/players' and all inspect pages", - cmdBall + sCol + "2: Access inspect page with the same username as the webuser", - cmdBall + sCol + "3+: No permissions", - Phrase.CMD_FOOTER.parse() + Phrase.CMD_FOOTER.parse(), + cmdBall + sCol + "0: Access all pages", + cmdBall + sCol + "1: Access '/players' and all inspect pages", + cmdBall + sCol + "2: Access inspect page with the same username as the webuser", + cmdBall + sCol + "3+: No permissions", + Phrase.CMD_FOOTER.parse() }; sender.sendMessage(messages); return true; diff --git a/Plan/src/main/java/com/djrapitops/plan/data/AnalysisData.java b/Plan/src/main/java/com/djrapitops/plan/data/AnalysisData.java index 83f58ea2f..b47e590d3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/AnalysisData.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/AnalysisData.java @@ -13,12 +13,12 @@ import java.util.Map; /** * Big container object for Data. - * + *

* Contains parts that can be analysed. Each part has their own purpose. - * + *

* Parts contain variables that can be added to. These variables are then * analysed using the analysis method. - * + *

* After being analysed the ReplaceMap can be retrieved for replacing * placeholders on the analysis.html file. * @@ -27,14 +27,6 @@ import java.util.Map; */ public class AnalysisData extends RawData { - private long refreshDate; - - private String planVersion; - private String pluginsTabLayout; - private Map additionalDataReplaceMap; - - private String playersTable; - private final ActivityPart activityPart; private final CommandUsagePart commandUsagePart; private final GamemodePart gamemodePart; @@ -44,6 +36,11 @@ public class AnalysisData extends RawData { private final PlayerCountPart playerCountPart; private final PlaytimePart playtimePart; private final TPSPart tpsPart; + private long refreshDate; + private String planVersion; + private String pluginsTabLayout; + private Map additionalDataReplaceMap; + private String playersTable; public AnalysisData(Map commandUsage, List tpsData) { commandUsagePart = new CommandUsagePart(commandUsage); @@ -95,9 +92,9 @@ public class AnalysisData extends RawData { public List getAllParts() { return Arrays.asList(new RawData[]{ - activityPart, commandUsagePart, gamemodePart, - geolocationPart, joinInfoPart, killPart, - playerCountPart, playtimePart, tpsPart + activityPart, commandUsagePart, gamemodePart, + geolocationPart, joinInfoPart, killPart, + playerCountPart, playtimePart, tpsPart }); } @@ -125,10 +122,6 @@ public class AnalysisData extends RawData { this.additionalDataReplaceMap = additionalDataReplaceMap; } - public void setRefreshDate(long refreshDate) { - this.refreshDate = refreshDate; - } - public void setPlayersTable(String playersTable) { this.playersTable = playersTable; } @@ -166,4 +159,8 @@ public class AnalysisData extends RawData { public long getRefreshDate() { return refreshDate; } + + public void setRefreshDate(long refreshDate) { + this.refreshDate = refreshDate; + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/KillData.java b/Plan/src/main/java/com/djrapitops/plan/data/KillData.java index cf3f340e0..72f6a2844 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/KillData.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/KillData.java @@ -19,10 +19,10 @@ public class KillData { /** * Creates a KillData object with given parameters. * - * @param victim UUID of the victim. + * @param victim UUID of the victim. * @param victimID ID of the victim, get from the database. - * @param weapon Weapon used. - * @param date Epoch millisecond at which the kill occurred. + * @param weapon Weapon used. + * @param date Epoch millisecond at which the kill occurred. */ public KillData(UUID victim, int victimID, String weapon, long date) { this.victim = victim; diff --git a/Plan/src/main/java/com/djrapitops/plan/data/SessionData.java b/Plan/src/main/java/com/djrapitops/plan/data/SessionData.java index 549222a06..9cbe8ef1e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/SessionData.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/SessionData.java @@ -25,7 +25,7 @@ public class SessionData { * Creates a new session with given start and end. * * @param sessionStart Epoch millisecond the session was started. - * @param sessionEnd Epoch millisecond the session ended. + * @param sessionEnd Epoch millisecond the session ended. */ public SessionData(long sessionStart, long sessionEnd) { this.sessionStart = sessionStart; @@ -44,7 +44,7 @@ public class SessionData { /** * Ends the session with given end point. - * + *

* (Changes the end to the parameter.). * * @param endOfSession Epoch millisecond the session ended. diff --git a/Plan/src/main/java/com/djrapitops/plan/data/TPS.java b/Plan/src/main/java/com/djrapitops/plan/data/TPS.java index 798bcd821..03e7f712b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/TPS.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/TPS.java @@ -21,9 +21,9 @@ public class TPS { /** * Constructor. * - * @param date time of the average calculation. - * @param tps average tps for the last minute. - * @param players average players for the last minute. + * @param date time of the average calculation. + * @param tps average tps for the last minute. + * @param players average players for the last minute. * @param cpuUsage average CPU usage for the last minute. */ public TPS(long date, double tps, int players, double cpuUsage) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/UserData.java b/Plan/src/main/java/com/djrapitops/plan/data/UserData.java index 72fc3536b..4818760aa 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/UserData.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/UserData.java @@ -16,9 +16,9 @@ import java.util.stream.Collectors; */ public class UserData { + private final List sessions; private int accessing; private boolean clearAfterSave; - private UUID uuid; private Set ips; private Set nicknames; @@ -34,37 +34,33 @@ public class UserData { private boolean isOp; private boolean isBanned; private String geolocation; - private int mobKills; private List playerKills; private int deaths; - private String name; private boolean isOnline; - private SessionData currentSession; - private final List sessions; /** * Creates a new UserData object with given values and default values. - * + *

* Some variables are left uninitialized: isBanned, lastPlayed, playTime, * loginTimes, timesKicked, lastGmSwapTime, mobKills, deaths and * currentSession. - * + *

* These variables need to be set with setters. - * + *

* All Collections are left empty: locations, nicknames, ips, sessions, * playerKills. Because nicknames is empty, lastNick is an empty string. - * + *

* gmTimes HashMap will contain 4 '0L' values: SURVIVAL, CREATIVE, * ADVENTURE, SPECTATOR * - * @param uuid UUID of the player - * @param reg Epoch millisecond the player registered. - * @param op Is the player op? (true/false) + * @param uuid UUID of the player + * @param reg Epoch millisecond the player registered. + * @param op Is the player op? (true/false) * @param lastGM last GameMode the player was seen in. - * @param name Name of the player. + * @param name Name of the player. * @param online Is the player online? */ public UserData(UUID uuid, long reg, boolean op, String lastGM, String name, boolean online) { @@ -90,15 +86,15 @@ public class UserData { /** * Creates a new UserData object with the variables inside a Player object. - * + *

* Some variables are left uninitialized: lastPlayed, playTime, loginTimes, * timesKicked, lastGmSwapTime, mobKills, deaths and currentSession. - * + *

* These variables need to be set with setters. - * + *

* All Collections are left empty: locations, nicknames, ips, sessions, * playerKills. Because nicknames is empty, lastNick is an empty string. - * + *

* gmTimes HashMap will contain 4 '0L' values: SURVIVAL, CREATIVE, * ADVENTURE, SPECTATOR * @@ -118,19 +114,19 @@ public class UserData { /** * Creates a new UserData object with the variables inside a OfflinePlayer * object. - * + *

* Some variables are left uninitialized: location, lastPlayed, playTime, * loginTimes, timesKicked, lastGmSwapTime, mobKills, deaths and * currentSession. - * + *

* These variables need to be set with setters. - * + *

* All Collections are left empty: locations, nicknames, ips, sessions, * playerKills. Because nicknames is empty, lastNick is an empty string. - * + *

* gmTimes HashMap will contain 4 '0L' values: SURVIVAL, CREATIVE, * ADVENTURE, SPECTATOR - * + *

* lastGM will be set as SURVIVAL * * @param player IOfflinePlayer object. @@ -215,9 +211,9 @@ public class UserData { /** * Adds a nickname to the nicknames Set. - * + *

* null or empty values filtered. - * + *

* lastNick will be set as the given parameter, if accepted. * * @param nick Displayname of the player. @@ -237,7 +233,7 @@ public class UserData { /** * Adds nicknames to the nicknames Set. - * + *

* null or empty values filtered. * * @param addNicks Collection of nicknames. @@ -249,7 +245,7 @@ public class UserData { /** * Set a specific GameMode's millisecond value. * - * @param gm Name of Gamemode. + * @param gm Name of Gamemode. * @param time Milliseconds spent in the gamemode. */ public void setGMTime(String gm, long time) { @@ -264,8 +260,8 @@ public class UserData { /** * Set every GameMode's millisecond value. * - * @param survivalTime ms spent in SURVIVAL - * @param creativeTime ms spent in CREATIVE + * @param survivalTime ms spent in SURVIVAL + * @param creativeTime ms spent in CREATIVE * @param adventureTime ms spent in ADVENTURE * @param spectatorTime ms spent in SPECTATOR */ @@ -279,7 +275,7 @@ public class UserData { /** * Adds a new SessionData to the sessions list. - * + *

* null and invalid sessions filtered. * * @param session SessionData object @@ -292,7 +288,7 @@ public class UserData { /** * Adds SessionData objects to the sessions list. - * + *

* null and invalid sessions filtered. * * @param sessions Collection of SessionData objects. @@ -305,20 +301,9 @@ public class UserData { this.sessions.addAll(filteredSessions); } - /** - * Sets the current session. - * - * Currently unused. - * - * @param session SessionData object, no restrictions. - */ - public void setCurrentSession(SessionData session) { - currentSession = session; - } - /** * Gets the current session. - * + *

* Currently unused. * * @return SessionData object with a recent start. @@ -327,6 +312,17 @@ public class UserData { return currentSession; } + /** + * Sets the current session. + *

+ * Currently unused. + * + * @param session SessionData object, no restrictions. + */ + public void setCurrentSession(SessionData session) { + currentSession = session; + } + /** * Changes the value of isBanned. * @@ -369,6 +365,15 @@ public class UserData { return uuid; } + /** + * Set the UUID. + * + * @param uuid UUID + */ + public void setUuid(UUID uuid) { + this.uuid = uuid; + } + /** * Get the InetAddress Set. * @@ -378,6 +383,17 @@ public class UserData { return ips; } + /** + * Set the ips set. + * + * @param ips ips of the user. + */ + public void setIps(Set ips) { + if (Verify.notNull(ips)) { + this.ips = ips; + } + } + /** * Get the nickname String Set. * @@ -387,6 +403,17 @@ public class UserData { return nicknames; } + /** + * Set the nicknames set. + * + * @param nicknames nicknames of the user. + */ + public void setNicknames(Set nicknames) { + if (Verify.notNull(nicknames)) { + this.nicknames = nicknames; + } + } + /** * Get the Epoch millisecond the player registered. * @@ -397,8 +424,17 @@ public class UserData { } /** - * Get the Epoch millisecond the player was last seen. + * Set the time the user was registered. * + * @param registered Epoch millisecond of register time. + */ + public void setRegistered(long registered) { + this.registered = registered; + } + + /** + * Get the Epoch millisecond the player was last seen. + *

* NOT INITIALIZED BY CONSTRUCTORS. Value is updated periodically by cache * if the player is online. * @@ -409,8 +445,20 @@ public class UserData { } /** - * Get the playtime in milliseconds. + * Set the time the user was last seen. + *

+ * Affects playtime calculation, playtime should be updated before updating + * this value. * + * @param lastPlayed Epoch millisecond of last seen moment. + */ + public void setLastPlayed(long lastPlayed) { + this.lastPlayed = lastPlayed; + } + + /** + * Get the playtime in milliseconds. + *

* NOT INITIALIZED BY CONSTRUCTORS. Value is updated periodically by cache * if the player is online. * @@ -421,8 +469,17 @@ public class UserData { } /** - * Get how many times the player has logged in. + * Set the time the user has been playing. * + * @param playTime Time in ms. + */ + public void setPlayTime(long playTime) { + this.playTime = playTime; + } + + /** + * Get how many times the player has logged in. + *

* NOT INITIALIZED BY CONSTRUCTORS. * * @return 0 to Integer.MAX @@ -432,8 +489,19 @@ public class UserData { } /** - * Get how many times the player has been kicked. + * Set how many times the user has logged in. + *

+ * No check for input. * + * @param loginTimes 0 to Int.MAX + */ + public void setLoginTimes(int loginTimes) { + this.loginTimes = loginTimes; + } + + /** + * Get how many times the player has been kicked. + *

* NOT INITIALIZED BY CONSTRUCTORS. * * @return 0 to Integer.MAX @@ -442,6 +510,17 @@ public class UserData { return timesKicked; } + /** + * Set how many times the user has been kicked. + *

+ * No check for input. + * + * @param timesKicked 0 to Int.MAX + */ + public void setTimesKicked(int timesKicked) { + this.timesKicked = timesKicked; + } + /** * Get the GMTimes Map. * @@ -455,6 +534,18 @@ public class UserData { return gmTimes; } + /** + * Set the GM Times map containing playtime in each gamemode. + * + * @param gmTimes Map containing SURVIVAL, CREATIVE, ADVENTURE and SPECTATOR + * (After 1.8) keys. + */ + public void setGmTimes(Map gmTimes) { + if (Verify.notNull(gmTimes)) { + this.gmTimes = gmTimes; + } + } + /** * Get the last time a Gamemode time was updated. * @@ -465,8 +556,17 @@ public class UserData { } /** - * Get the last Gamemode that the user was seen in. + * Set the last time a Gamemode time was updated. * + * @param lastGmSwapTime Epoch millisecond a gm time was updated. + */ + public void setLastGmSwapTime(long lastGmSwapTime) { + this.lastGmSwapTime = lastGmSwapTime; + } + + /** + * Get the last Gamemode that the user was seen in. + *

* When player changes to SURVIVAL this is set to SURVIVAL. * * @return Gamemode. @@ -475,6 +575,15 @@ public class UserData { return lastGamemode; } + /** + * Set the last gamemode the user was seen in. + * + * @param lastGamemode gamemode. + */ + public void setLastGamemode(String lastGamemode) { + this.lastGamemode = lastGamemode; + } + /** * Is the user Operator? * @@ -493,6 +602,15 @@ public class UserData { return isBanned; } + /** + * Set the banned value. + * + * @param isBanned true/false + */ + public void setBanned(boolean isBanned) { + this.isBanned = isBanned; + } + /** * Get the username of the player. * @@ -502,132 +620,6 @@ public class UserData { return name; } - /** - * Set the UUID. - * - * @param uuid UUID - */ - public void setUuid(UUID uuid) { - this.uuid = uuid; - } - - /** - * Set the ips set. - * - * @param ips ips of the user. - */ - public void setIps(Set ips) { - if (Verify.notNull(ips)) { - this.ips = ips; - } - } - - /** - * Set the nicknames set. - * - * @param nicknames nicknames of the user. - */ - public void setNicknames(Set nicknames) { - if (Verify.notNull(nicknames)) { - this.nicknames = nicknames; - } - } - - /** - * Set the time the user was registered. - * - * @param registered Epoch millisecond of register time. - */ - public void setRegistered(long registered) { - this.registered = registered; - } - - /** - * Set the time the user was last seen. - * - * Affects playtime calculation, playtime should be updated before updating - * this value. - * - * @param lastPlayed Epoch millisecond of last seen moment. - */ - public void setLastPlayed(long lastPlayed) { - this.lastPlayed = lastPlayed; - } - - /** - * Set the time the user has been playing. - * - * @param playTime Time in ms. - */ - public void setPlayTime(long playTime) { - this.playTime = playTime; - } - - /** - * Set how many times the user has logged in. - * - * No check for input. - * - * @param loginTimes 0 to Int.MAX - */ - public void setLoginTimes(int loginTimes) { - this.loginTimes = loginTimes; - } - - /** - * Set how many times the user has been kicked. - * - * No check for input. - * - * @param timesKicked 0 to Int.MAX - */ - public void setTimesKicked(int timesKicked) { - this.timesKicked = timesKicked; - } - - /** - * Set the GM Times map containing playtime in each gamemode. - * - * @param gmTimes Map containing SURVIVAL, CREATIVE, ADVENTURE and SPECTATOR - * (After 1.8) keys. - */ - public void setGmTimes(Map gmTimes) { - if (Verify.notNull(gmTimes)) { - this.gmTimes = gmTimes; - } - } - - /** - * Set the last time a Gamemode time was updated. - * - * @param lastGmSwapTime Epoch millisecond a gm time was updated. - */ - public void setLastGmSwapTime(long lastGmSwapTime) { - this.lastGmSwapTime = lastGmSwapTime; - } - - /** - * Set the last gamemode the user was seen in. - * - * @param lastGamemode gamemode. - */ - public void setLastGamemode(String lastGamemode) { - this.lastGamemode = lastGamemode; - } - - /** - * Set whether or not player is op. - * - * @param isOp operator? - */ - public void setIsOp(boolean isOp) { - this.isOp = isOp; - } - - public void setGeolocation(String geolocation) { - this.geolocation = geolocation; - } - /** * Set the username of the user. * @@ -637,6 +629,15 @@ public class UserData { this.name = name; } + /** + * Set whether or not player is op. + * + * @param isOp operator? + */ + public void setIsOp(boolean isOp) { + this.isOp = isOp; + } + /** * Is the player online? * @@ -646,6 +647,15 @@ public class UserData { return isOnline; } + /** + * Set the online value. + * + * @param isOnline true/false + */ + public void setOnline(boolean isOnline) { + this.isOnline = isOnline; + } + /** * Get how many mob kills the player has. * @@ -722,7 +732,7 @@ public class UserData { /** * Get the last nickname the user has set. - * + *

* Set when using addNickname(String) * * @return last nickname used. @@ -733,7 +743,7 @@ public class UserData { /** * Set the last nickname the user has set. - * + *

* Also set when using addNickname(String) * * @param lastNick last nickname used. @@ -797,25 +807,11 @@ public class UserData { this.clearAfterSave = clearAfterSave; } - /** - * Set the banned value. - * - * @param isBanned true/false - */ - public void setBanned(boolean isBanned) { - this.isBanned = isBanned; - } - - /** - * Set the online value. - * - * @param isOnline true/false - */ - public void setOnline(boolean isOnline) { - this.isOnline = isOnline; - } - public String getGeolocation() { return geolocation; } + + public void setGeolocation(String geolocation) { + this.geolocation = geolocation; + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/additional/AnalysisType.java b/Plan/src/main/java/com/djrapitops/plan/data/additional/AnalysisType.java index 49f7ec4b6..e7696202e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/additional/AnalysisType.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/additional/AnalysisType.java @@ -3,10 +3,10 @@ package main.java.com.djrapitops.plan.data.additional; /** * This class contains Enum values for different types of Analysis that can be * performed on values of PluginData. - * + *

* The enum determines what should be done to the return value of * PluginData.getValue() method when the analysis is run. - * + *

* Refer to the documentation on GitHub for additional information. * * @author Rsl1122 @@ -17,56 +17,56 @@ public enum AnalysisType { /** * Used when the getValue() method returns an integer and average should be * calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ INT_AVG("avgInt_", "Average "), /** * Used when the getValue() method returns a long and average should be * calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ LONG_AVG("avgLong_", "Average "), /** * Used when the getValue() method returns double and average should be * calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ DOUBLE_AVG("avgDouble_", "Average "), /** * Used when the getValue() method returns an integer and total should be * calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ INT_TOTAL("totalInt_", "Total "), /** * Used when the getValue() method returns a long and total should be * calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ LONG_TOTAL("totalLong_", "Total "), /** * Used when the getValue() method returns a double and total should be * calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ DOUBLE_TOTAL("totalDouble_", "Total "), /** * Used when the getValue() method returns an amount of milliseconds as long * and average should be calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ LONG_TIME_MS_AVG("avgTimeMs_", "Average "), /** * Used when the getValue() method returns an amount of milliseconds as long * and total should be calculated. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ LONG_TIME_MS_TOTAL("totalTimeMs_"), @@ -74,11 +74,11 @@ public enum AnalysisType { * Used when the getValue() method returns an Epoch Millisecond as long and * average of differences between the millisecond and current millisecond * should be calculated. - * + *

* For example if a player has dropped a Foo on epoch ms 1494486504000 and * that was 5s (5000ms) ago. Now you want to calculate the average * time-since for all players. Then you use this one. - * + *

* -1 values will be disregarded from the calculation (size will not grow). */ LONG_EPOCH_MS_MINUS_NOW_AVG("avgEpochMsMinusNow_", "Average "), @@ -89,13 +89,13 @@ public enum AnalysisType { /** * Used to calculate number of true values for the returned boolean values * of getValue(). - * + *

* Will be presented as "n / total". */ BOOLEAN_TOTAL("totalBool_"), /** * Used to add html tags to the plugins tab. - * + *

* Can be used to add Tables, Images (for example maps) and other html * elements. */ @@ -121,7 +121,7 @@ public enum AnalysisType { /** * Used to get the modifier for the Prefix of the value. - * + *

* For example: "Average Votes" when INT_AVG is used and Prefix is set as * "Votes". * diff --git a/Plan/src/main/java/com/djrapitops/plan/data/additional/HookHandler.java b/Plan/src/main/java/com/djrapitops/plan/data/additional/HookHandler.java index 859f1a8b7..517ba0b0d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/additional/HookHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/additional/HookHandler.java @@ -38,10 +38,10 @@ public class HookHandler { /** * Adds a new PluginData source to the list. - * + *

* The plugin data will appear on Analysis and/or Inspect pages depending on * how the extending object is set up. - * + *

* Refer to documentation on GitHub for more information. * * @param dataSource an object extending the PluginData class. diff --git a/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginData.java b/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginData.java index bd7b06efa..a06c57935 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginData.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/additional/PluginData.java @@ -8,7 +8,7 @@ import java.util.*; /** * This is an abstract class that can be used to add data from a plugin to the * "Plugins"-tab of Analysis and Inspect pages. - * + *

* API-section of documentation has examples on the usage of this class and how * to register objects extending this class. * @@ -17,71 +17,65 @@ import java.util.*; */ public abstract class PluginData { + /** + * A list containing the AnalysisType enums that determine what should be + * done with the data on the analysis page. + */ + protected final List analysisTypes; /** * Placeholder string, for example "stepsTaken". This will be used when * building the structure of the Plugins tab. - * + *

* The complete placeholder also includes the plugin name and if analysis is * run, a modifier. - * + *

* Second parameter of any super constructor. */ protected String placeholder; - /** * Name of the plugin the data is coming from. - * + *

* All sources of data with the same sourcePlugin will be placed in the same * "box" in the "Plugins" tab. - * + *

* A box has a max height of 600px, and higher than that will add a * scrollbar. - * + *

* First parameter of any super constructor. */ protected String sourcePlugin; - /** * Determines if the datapoint should only be used for the analysis page. - * + *

* If set to false, the datapoint will be added to the inspect page as well. */ protected boolean analysisOnly; - /** * Font Awesome icon name. - * + *

* http://fontawesome.io/icons/ */ protected String icon; - /** * Prefix shown before the data, for example "Steps taken: ". */ protected String prefix; - /** * Suffix shown after the data, for example " steps". */ protected String suffix; - /** - * A list containing the AnalysisType enums that determine what should be - * done with the data on the analysis page. - */ - protected final List analysisTypes; - /** * Main constructor. - * + *

* Defaults analysisOnly to true. - * + *

* Defaults icon, prefix and suffix to "". * - * @param sourcePlugin Name of the plugin the data is coming from - * @param placeholder Placeholder string, for example "stepsTaken" + * @param sourcePlugin Name of the plugin the data is coming from + * @param placeholder Placeholder string, for example "stepsTaken" * @param analysisTypes A list containing the AnalysisType enums that - * determine what should be done with the data on the analysis page + * determine what should be done with the data on the analysis page */ public PluginData(String sourcePlugin, String placeholder, List analysisTypes) { this.placeholder = placeholder; @@ -96,10 +90,10 @@ public abstract class PluginData { /** * Constructor for accepting single, multiple and arrays of AnalysisType. * - * @param sourcePlugin Name of the plugin the data is coming from - * @param placeholder Placeholder string, for example "stepsTaken" + * @param sourcePlugin Name of the plugin the data is coming from + * @param placeholder Placeholder string, for example "stepsTaken" * @param analysisTypes AnalysisType enums that determine what should be - * done with the data on the analysis page + * done with the data on the analysis page */ public PluginData(String sourcePlugin, String placeholder, AnalysisType... analysisTypes) { this(sourcePlugin, placeholder, Arrays.asList(analysisTypes)); @@ -107,11 +101,11 @@ public abstract class PluginData { /** * Constructor for Inspect-page only data point. - * + *

* analysisOnly will be set to false. * * @param sourcePlugin Name of the plugin the data is coming from - * @param placeholder Placeholder string, for example "stepsTaken" + * @param placeholder Placeholder string, for example "stepsTaken" */ public PluginData(String sourcePlugin, String placeholder) { this(sourcePlugin, placeholder, new ArrayList<>()); @@ -120,7 +114,7 @@ public abstract class PluginData { /** * Returns the list of AnalysisTypes. - * + *

* Used by Analysis * * @return a list. @@ -132,15 +126,15 @@ public abstract class PluginData { /** * This method should be used with the return values of * getHtmlReplaceValue(String, UUID). - * + *

* It will add the div, icon, modifier, prefix and suffix to the value. * Modifier is for example, if calculating AnalysisType.INT_AVG "Average ", * it is a text that helps user understand that a calculation has been made. * * @param modifier For example "Average " - Determined by value of - * AnalysisType's modifier-variable. + * AnalysisType's modifier-variable. * @param contents The data, number/string/html that should be placed on the - * page. + * page. * @return a proper format for the html. * @see AnalysisType */ @@ -150,12 +144,12 @@ public abstract class PluginData { /** * Used to get the full placeholder. - * + *

* Used to avoid conflicts with existing placeholders and placeholders of * other plugins. * * @param modifier Modifier determined by AnalysisType's - * placeholderModifier-variable. + * placeholderModifier-variable. * @return for example "%StepCounter_stepsTaken_total%" * @see AnalysisType */ @@ -174,20 +168,20 @@ public abstract class PluginData { /** * Used to get the string for the html page. - * + *

* parseContainer(modifierPrefix, value); should be used for all return * values so that div, icon, prefix and suffix are added. - * + *

* This method is used when AnalysisType.HTML is set, or while getting the * value for the inspect page. - * + *

* When using AnalysisType.HTML a random UUID is given, so it should be * disregarded. modifierPrefix is empty in that case. * * @param modifierPrefix Modifier determined by AnalysisType's - * modifier-variable. - * @param uuid UUID of the player or random UUID if AnalysisType.HTML is - * used. + * modifier-variable. + * @param uuid UUID of the player or random UUID if AnalysisType.HTML is + * used. * @return html for the page. */ public abstract String getHtmlReplaceValue(String modifierPrefix, UUID uuid); @@ -196,10 +190,10 @@ public abstract class PluginData { * Used to get the value for analysis. The return value is determined by * AnalysisType you have specified. If the AnalysisType's name has a BOOLEAN * in it, Analysis will expect boolean values etc. - * + *

* If the Type and return value mismatch, exception is thrown and the result * on the analysis page will say that error occurred as the value. - * + *

* If a player has no value a -1 should be returned in the case of a Number. * -1 is excluded from the Average calculation's size and total. * @@ -209,24 +203,6 @@ public abstract class PluginData { */ public abstract Serializable getValue(UUID uuid); - /** - * Used to set the prefix. - * - * @param prefix for example "Steps Taken: " or a Html start tag. - */ - public final void setPrefix(String prefix) { - this.prefix = prefix; - } - - /** - * Used to set the suffix. - * - * @param suffix for example " steps" or a html end tag. - */ - public final void setSuffix(String suffix) { - this.suffix = suffix; - } - /** * Used to set the Font Awesome icon. * @@ -238,7 +214,7 @@ public abstract class PluginData { /** * Used to set the analysisOnly parameter. - * + *

* true: only used for Analysis page false: used for both if AnalysisTypes * specified, if no AnalysisTypes are specified only used for Inspect page. * @@ -266,6 +242,15 @@ public abstract class PluginData { return prefix; } + /** + * Used to set the prefix. + * + * @param prefix for example "Steps Taken: " or a Html start tag. + */ + public final void setPrefix(String prefix) { + this.prefix = prefix; + } + /** * Used to get the suffix. * @@ -275,6 +260,15 @@ public abstract class PluginData { return suffix; } + /** + * Used to set the suffix. + * + * @param suffix for example " steps" or a html end tag. + */ + public final void setSuffix(String suffix) { + this.suffix = suffix; + } + /** * If a PluginData object has same placeholder, sourcePlugin and * analysisTypes, it is considered equal. diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/ActivityPart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/ActivityPart.java index 9b420a480..dc2d72503 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/ActivityPart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/ActivityPart.java @@ -2,13 +2,6 @@ package main.java.com.djrapitops.plan.data.analysis; import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.utilities.Verify; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; import main.java.com.djrapitops.plan.Settings; import main.java.com.djrapitops.plan.data.SessionData; import main.java.com.djrapitops.plan.data.TPS; @@ -22,14 +15,17 @@ import main.java.com.djrapitops.plan.utilities.HtmlUtils; import main.java.com.djrapitops.plan.utilities.analysis.AnalysisUtils; import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; +import java.util.*; +import java.util.stream.Collectors; + /** * Part responsible for all Player Activity related analysis. - * + *

* Online Graphs, Player-base pie-chart, Recent Players and Session * visualisation. - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: recentlogins, sessionaverage, * datapunchcard, datasessiondistribution, labelssessiondistribution, * datascatterday, datascatterweek, datascattermonth, playersonlinecolor, @@ -44,14 +40,12 @@ public class ActivityPart extends RawData { private final JoinInfoPart joins; private final TPSPart tpsPart; - - private List recentPlayers; - private List recentPlayersUUIDs; - private final Set bans; private final Set active; private final Set inactive; private final Set joinedOnce; + private List recentPlayers; + private List recentPlayersUUIDs; public ActivityPart(JoinInfoPart joins, TPSPart tps) { this.joins = joins; @@ -149,14 +143,6 @@ public class ActivityPart extends RawData { joinedOnce.add(uuid); } - public void setRecentPlayers(List recentPlayers) { - this.recentPlayers = recentPlayers; - } - - public void setRecentPlayersUUIDs(List recentPlayersUUIDs) { - this.recentPlayersUUIDs = recentPlayersUUIDs; - } - public Map getPlayersOnline() { return tpsPart.getTpsData().stream().collect(Collectors.toMap(TPS::getDate, TPS::getPlayers)); } @@ -165,10 +151,18 @@ public class ActivityPart extends RawData { return recentPlayers; } + public void setRecentPlayers(List recentPlayers) { + this.recentPlayers = recentPlayers; + } + public List getRecentPlayersUUIDs() { return recentPlayersUUIDs; } + public void setRecentPlayersUUIDs(List recentPlayersUUIDs) { + this.recentPlayersUUIDs = recentPlayersUUIDs; + } + public Set getBans() { return bans; } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/CommandUsagePart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/CommandUsagePart.java index 6ccb1dc01..a0beda65e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/CommandUsagePart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/CommandUsagePart.java @@ -5,17 +5,18 @@ */ package main.java.com.djrapitops.plan.data.analysis; -import java.util.Map; import main.java.com.djrapitops.plan.ui.html.tables.CommandUseTableCreator; import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import java.util.Map; + /** * Part responsible for all CommandUsage related analysis. - * + *

* Command Usage Table. - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: uniquecommands, totalcommands, commanduse * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/GamemodePart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/GamemodePart.java index 7632fab84..29a90c5ec 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/GamemodePart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/GamemodePart.java @@ -9,11 +9,11 @@ import java.util.Arrays; /** * Part responsible for all Gamemode usage related analysis. - * + *

* Gamemode Piechart, Percentages and Totals. - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: gmtotal, gm0col-gm3col, gmcolors, gmlabels, * gm0-gm3, gmdata, gm0total-gm3total * @@ -45,13 +45,13 @@ public class GamemodePart extends RawData { addValue("gmtotal", FormatUtils.formatTimeAmount(totalTime)); double[] percentages = new double[]{ - (survivalTime * 100.0) / totalTime, - (creativeTime * 100.0) / totalTime, - (adventureTime * 100.0) / totalTime, - (spectatorTime * 100.0) / totalTime + (survivalTime * 100.0) / totalTime, + (creativeTime * 100.0) / totalTime, + (adventureTime * 100.0) / totalTime, + (spectatorTime * 100.0) / totalTime }; long[] times = new long[]{ - survivalTime, creativeTime, adventureTime, spectatorTime + survivalTime, creativeTime, adventureTime, spectatorTime }; String col0 = Settings.HCOLOR_GMP_0 + ""; String col1 = Settings.HCOLOR_GMP_1 + ""; diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/GeolocationPart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/GeolocationPart.java index 957bdf047..9d89bf81b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/GeolocationPart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/GeolocationPart.java @@ -5,11 +5,11 @@ import java.util.Map; /** * Part responsible for all Geolocation related analysis. - * + *

* Player location World Chloropleth map. - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: geomapz, geomapcountries, geomapcodes * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/JoinInfoPart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/JoinInfoPart.java index 263065eed..e9f7ad58d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/JoinInfoPart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/JoinInfoPart.java @@ -11,11 +11,11 @@ import java.util.stream.Collectors; /** * Part responsible for all Player login related analysis. - * + *

* Unique per Day, Unique, New Players, Logins - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: totallogins, uniquejoinsday, * uniquejoinsweek, uniquejoinsmonth, avguniquejoins, avguniquejoinsday, * avguniquejoinsweek, avguniquejoinsmonth, npday, npweek, npmonth diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/KillPart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/KillPart.java index d5c42b8bc..1f8e16768 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/KillPart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/KillPart.java @@ -11,11 +11,11 @@ import java.util.UUID; /** * Part responsible for all Death related analysis. - * + *

* Totals - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: deaths, mobkills, playerkilss * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlayerCountPart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlayerCountPart.java index df4342828..6ebde1eee 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlayerCountPart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlayerCountPart.java @@ -1,6 +1,7 @@ package main.java.com.djrapitops.plan.data.analysis; import com.djrapitops.plugin.utilities.Verify; + import java.util.Collection; import java.util.HashSet; import java.util.Set; @@ -8,11 +9,11 @@ import java.util.UUID; /** * Part responsible for counting players. - * + *

* Total player count, op count - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: activitytotal, ops * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlaytimePart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlaytimePart.java index f74a9f041..a4d0f12ee 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlaytimePart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/PlaytimePart.java @@ -5,9 +5,9 @@ import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; /** * Part responsible for all Playtime related analysis. - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: totalplaytime, avgplaytime * * @author Rsl1122 @@ -15,8 +15,8 @@ import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; */ public class PlaytimePart extends RawData { - private long totalPlaytime; private final PlayerCountPart playerCount; + private long totalPlaytime; public PlaytimePart(PlayerCountPart part) { playerCount = part; diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/RawData.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/RawData.java index e5842df43..9c6d53784 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/RawData.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/RawData.java @@ -1,6 +1,7 @@ package main.java.com.djrapitops.plan.data.analysis; import com.djrapitops.plugin.utilities.Verify; + import java.io.Serializable; import java.util.HashMap; import java.util.Map; @@ -8,8 +9,8 @@ import java.util.Map; /** * Extending objects should represent, add together and analyse data. * - * @author Rsl1122 * @param The extending class, return value for get method. + * @author Rsl1122 * @since 3.5.2 */ public abstract class RawData { @@ -40,7 +41,7 @@ public abstract class RawData { /** * Analyses the data added together. - * + *

* Places place-holders to the replace map. */ public void analyseData() { @@ -50,7 +51,7 @@ public abstract class RawData { /** * Subclasses should analyse the data added together. - * + *

* Place-holders should be added to the replace map. */ protected abstract void analyse(); @@ -69,7 +70,7 @@ public abstract class RawData { * Adds a placeholder to the replaceMap. * * @param placeholder placeholder, with or without % signs. - * @param value Any value the placeholder should be replaced with. + * @param value Any value the placeholder should be replaced with. */ public void addValue(String placeholder, Serializable value) { placeholder = addPlaceholderSigns(placeholder); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/analysis/TPSPart.java b/Plan/src/main/java/com/djrapitops/plan/data/analysis/TPSPart.java index 3bdd61928..1a47db077 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/analysis/TPSPart.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/analysis/TPSPart.java @@ -12,11 +12,11 @@ import java.util.List; /** * Part responsible for all TPS related analysis. - * + *

* Ticks Per Second Graphs - * + *

* Placeholder values can be retrieved using the get method. - * + *

* Contains following place-holders: tpsscatterday, tpsscatterweek, cpuscatterday, cpuscatterweek, averagetps, * averagetpsday * diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/AnalysisCacheHandler.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/AnalysisCacheHandler.java index c56517ea2..f63db6aa1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/AnalysisCacheHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/AnalysisCacheHandler.java @@ -13,13 +13,13 @@ import main.java.com.djrapitops.plan.utilities.analysis.Analysis; */ public class AnalysisCacheHandler { - private AnalysisData cache; private final Analysis analysis; + private AnalysisData cache; private boolean analysisEnabled; /** * Class Constructor. - * + *

* Initializes Analysis * * @param plugin Current instance of Plan @@ -64,7 +64,6 @@ public class AnalysisCacheHandler { } /** - * * @return */ public boolean isAnalysisBeingRun() { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/DBCallableProcessor.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/DBCallableProcessor.java index fbe691b00..897809186 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/DBCallableProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/DBCallableProcessor.java @@ -5,7 +5,7 @@ import main.java.com.djrapitops.plan.data.UserData; /** * This abstract class can be extended with anything as the process method and * given to the Database. - * + *

* The process method will be called with the UserData object fetched from the * database. * @@ -19,7 +19,7 @@ public abstract class DBCallableProcessor { * changing properties etc. * * @param data UserData object given to the DBCallableProcessor by the - * method it was given as parameter to. + * method it was given as parameter to. */ public abstract void process(UserData data); } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/DataCacheHandler.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/DataCacheHandler.java index 8bfc74128..74f5456f0 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/DataCacheHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/DataCacheHandler.java @@ -27,13 +27,13 @@ import java.util.*; /** * This Class contains the Cache. - * + *

* This class is the main processing class that initialises Save, Clear, Process * and Get queue and Starts the asynchronous save task. - * + *

* It is used to store command use, locations, active sessions and UserData * objects in memory. - * + *

* Its methods can be used to access all the data it stores and to clear them. * * @author Rsl1122 @@ -43,13 +43,11 @@ public class DataCacheHandler extends SessionCache { // Cache private final HashMap dataCache; - private Map commandUse; - private List> unsavedTPSHistory; - // Plan private final Plan plugin; private final Database db; - + private Map commandUse; + private List> unsavedTPSHistory; // Queues private DataCacheSaveQueue saveTask; private DataCacheClearQueue clearTask; @@ -61,7 +59,7 @@ public class DataCacheHandler extends SessionCache { /** * Class Constructor. - * + *

* Gets the Database from the plugin. Starts the queues. Registers * Asynchronous Periodic Save Task * @@ -115,8 +113,8 @@ public class DataCacheHandler extends SessionCache { * Used to start the Asynchronous Save Task. * * @throws IllegalArgumentException BukkitRunnable was given wrong - * parameters. - * @throws IllegalStateException BukkitScheduler is in a wrong state. + * parameters. + * @throws IllegalStateException BukkitScheduler is in a wrong state. */ public void startAsyncPeriodicSaveTask() throws IllegalArgumentException, IllegalStateException { int minutes = Settings.SAVE_CACHE_MIN.getNumber(); @@ -160,14 +158,14 @@ public class DataCacheHandler extends SessionCache { /** * Uses Database or Cache to retrieve the UserData of a matching player. - * + *

* Caches the data to the Cache if cache-parameter is true. * * @param processor DBCallableProcessor Object used to process the data - * after it was retrieved - * @param uuid Player's UUID - * @param cache Whether or not the UserData will be Cached in this instance - * of DataCacheHandler after it has been fetched (if not already fetched) + * after it was retrieved + * @param uuid Player's UUID + * @param cache Whether or not the UserData will be Cached in this instance + * of DataCacheHandler after it has been fetched (if not already fetched) */ public void getUserDataForProcessing(DBCallableProcessor processor, UUID uuid, boolean cache) { Log.debug(uuid + ": HANDLER getForProcess," + " Cache:" + cache); @@ -191,7 +189,7 @@ public class DataCacheHandler extends SessionCache { /** * Used to Cache a UserData object to the Cache. - * + *

* If a object already exists it will be replaced. * * @param data UserData object with the UUID inside used as key. @@ -204,12 +202,12 @@ public class DataCacheHandler extends SessionCache { /** * Uses Database or Cache to retrieve the UserData of a matching player. - * + *

* Always Caches the data after retrieval (unless already cached) * * @param processor DBCallableProcessor Object used to process the data - * after it was retrieved - * @param uuid Player's UUID + * after it was retrieved + * @param uuid Player's UUID */ public void getUserDataForProcessing(DBCallableProcessor processor, UUID uuid) { getUserDataForProcessing(processor, uuid, true); @@ -217,9 +215,9 @@ public class DataCacheHandler extends SessionCache { /** * Saves all UserData in the cache to Database. - * + *

* ATTENTION: TODO - Doesn't save the Locations in the locationCache. - * + *

* Should only be called from Async thread */ public void saveCachedUserData() { @@ -234,7 +232,7 @@ public class DataCacheHandler extends SessionCache { /** * Used to add event HandlingInfo to the processTask's pool. - * + *

* Given HandlingInfo object's process method will be called. * * @param i Object that extends HandlingInfo. @@ -249,9 +247,9 @@ public class DataCacheHandler extends SessionCache { /** * Saves all data in the cache to Database and closes the database down. - * + *

* Stops all tasks. - * + *

* If processTask has unprocessed information, it will be processed. */ public void saveCacheOnDisable() { @@ -334,7 +332,7 @@ public class DataCacheHandler extends SessionCache { /** * Saves the cached CommandUse. - * + *

* Should be only called from an Asynchronous Thread. */ public void saveCommandUse() { @@ -491,7 +489,7 @@ public class DataCacheHandler extends SessionCache { /** * If /reload is run this treats every online player as a new login. - * + *

* Calls all the methods that are ran when PlayerJoinEvent is fired */ public void handleReload() { @@ -525,7 +523,6 @@ public class DataCacheHandler extends SessionCache { } /** - * * @return */ public DataCacheSaveQueue getSaveTask() { @@ -533,7 +530,6 @@ public class DataCacheHandler extends SessionCache { } /** - * * @return */ public DataCacheClearQueue getClearTask() { @@ -541,7 +537,6 @@ public class DataCacheHandler extends SessionCache { } /** - * * @return */ public DataCacheProcessQueue getProcessTask() { @@ -549,7 +544,6 @@ public class DataCacheHandler extends SessionCache { } /** - * * @return */ public DataCacheGetQueue getGetTask() { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/InspectCacheHandler.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/InspectCacheHandler.java index e1c454255..805efb1a4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/InspectCacheHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/InspectCacheHandler.java @@ -36,7 +36,7 @@ public class InspectCacheHandler { /** * Caches the UserData object to InspectCache. - * + *

* If the Userdata is cached in DataCache it will be used. Otherwise the Get * Queue will handle the DBCallableProcessor. * diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java index cc0c2b6f6..aa7bf9166 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java @@ -1,13 +1,14 @@ package main.java.com.djrapitops.plan.data.cache; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.data.SessionData; import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.utilities.MiscUtils; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + /** * This class is used to store active sessions of players in memory. * @@ -78,7 +79,7 @@ public class SessionCache { /** * Used to get the Map of active sessions. - * + *

* Used for testing. * * @return key:value UUID:SessionData diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Consumer.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Consumer.java index cd9ee74ac..7fe3065ed 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Consumer.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Consumer.java @@ -1,24 +1,25 @@ package main.java.com.djrapitops.plan.data.cache.queue; import com.djrapitops.plugin.task.AbsRunnable; + import java.util.concurrent.BlockingQueue; /** * Abstract class representing a queue consumer. * - * @author Rsl1122 * @param + * @author Rsl1122 */ public abstract class Consumer extends AbsRunnable { - boolean run; final BlockingQueue queue; + boolean run; /** * Constructor, defines queue. * * @param queue Queue to consume from. - * @param name Name of the queue. + * @param name Name of the queue. */ public Consumer(BlockingQueue queue, String name) { super(name); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheGetQueue.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheGetQueue.java index e3bf5cae7..e3621e567 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheGetQueue.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheGetQueue.java @@ -34,9 +34,9 @@ public class DataCacheGetQueue extends Queue /** * Schedules UserData objects to be get for the given processors. * - * @param uuid UUID of the player whose UserData object is fetched. + * @param uuid UUID of the player whose UserData object is fetched. * @param processors Processors which process-method will be called after - * fetch is complete, with the UserData object. + * fetch is complete, with the UserData object. */ public void scheduleForGet(UUID uuid, DBCallableProcessor... processors) { Log.debug(uuid + ": Scheduling for get"); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheSaveQueue.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheSaveQueue.java index fd5f804ff..8ac9a9c44 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheSaveQueue.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/DataCacheSaveQueue.java @@ -27,7 +27,7 @@ public class DataCacheSaveQueue extends Queue { /** * Class constructor, starts the new Thread for saving. * - * @param plugin current instance of Plan + * @param plugin current instance of Plan * @param handler DataCacheHandler */ public DataCacheSaveQueue(Plan plugin, DataCacheHandler handler) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Queue.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Queue.java index 31ee765f5..e75022b56 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Queue.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Queue.java @@ -7,8 +7,8 @@ import java.util.concurrent.BlockingQueue; /** * Abstract implementation of a Queue. * - * @author Rsl1122 * @param Object this queue consumes + * @author Rsl1122 */ public abstract class Queue { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Setup.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Setup.java index cdc561088..813e5bb1f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Setup.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/queue/Setup.java @@ -5,8 +5,8 @@ import main.java.com.djrapitops.plan.Plan; /** * Abstract representation of a queue setup. * - * @author Rsl1122 * @param Object this queue consumes. + * @author Rsl1122 */ public abstract class Setup { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/ChatHandling.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/ChatHandling.java index 3f30fbac2..a8e47afe9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/ChatHandling.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/ChatHandling.java @@ -15,9 +15,9 @@ public class ChatHandling { * Processes the information of the Event and changes UserData object * accordingly. * - * @param data UserData of the player. + * @param data UserData of the player. * @param nickname Nickname of the player during the event. - * @param msg Message sent by the player. + * @param msg Message sent by the player. */ public static void processChatInfo(UserData data, String nickname, String msg) { data.addNickname(nickname); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/GamemodeHandling.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/GamemodeHandling.java index b4f0edb76..ccdc241c4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/GamemodeHandling.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/GamemodeHandling.java @@ -18,8 +18,8 @@ public class GamemodeHandling { * Processes the information of the Event and changes UserData object * accordingly. * - * @param data UserData of the player. - * @param time Epoch ms the event occurred. + * @param data UserData of the player. + * @param time Epoch ms the event occurred. * @param newGM The Gamemode the player changed to. */ public static void processGamemodeInfo(UserData data, long time, Gamemode newGM) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/KillHandling.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/KillHandling.java index aef91d044..8cfb85e30 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/KillHandling.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/KillHandling.java @@ -1,7 +1,5 @@ package main.java.com.djrapitops.plan.data.handling; -import java.sql.SQLException; -import java.util.UUID; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.KillData; @@ -9,6 +7,9 @@ import main.java.com.djrapitops.plan.data.UserData; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; +import java.sql.SQLException; +import java.util.UUID; + /** * Class containing static methods for processing information contained in a * DeathEvent when the killer is a player. @@ -22,9 +23,9 @@ public class KillHandling { * Processes the information of the Event and changes UserData object * accordingly. * - * @param data UserData of the player. - * @param time Epoch ms the event occurred. - * @param dead Mob or a Player the player killed. + * @param data UserData of the player. + * @param time Epoch ms the event occurred. + * @param dead Mob or a Player the player killed. * @param weaponName The name of the Weapon used. */ public static void processKillInfo(UserData data, long time, LivingEntity dead, String weaponName) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/LoginHandling.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/LoginHandling.java index 2b40e3b73..9c9630ba6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/LoginHandling.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/LoginHandling.java @@ -18,11 +18,11 @@ public class LoginHandling { * Processes the information of the Event and changes UserData object * accordingly. * - * @param data UserData of the player. - * @param time Epoch ms the event occurred. - * @param ip IP of the player - * @param banned Is the player banned - * @param nickname Nickname of the player + * @param data UserData of the player. + * @param time Epoch ms the event occurred. + * @param ip IP of the player + * @param banned Is the player banned + * @param nickname Nickname of the player * @param loginTimes amount the loginTimes should be incremented with. */ public static void processLoginInfo(UserData data, long time, InetAddress ip, boolean banned, String nickname, int loginTimes) { @@ -36,10 +36,10 @@ public class LoginHandling { /** * Updates the geolocation of the player. - * + *

* Uses free service of freegeoip.net. 15000 requests can be sent per hour. * - * @param ip InetAddress used for location. + * @param ip InetAddress used for location. * @param data UserData of the player. * @see GeolocationCacheHandler */ diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/LogoutHandling.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/LogoutHandling.java index 5c2c37259..ea1ec1038 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/LogoutHandling.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/LogoutHandling.java @@ -15,8 +15,8 @@ public class LogoutHandling { * Processes the information of the Event and changes UserData object * accordingly. * - * @param data UserData of the player. - * @param time Epoch ms the event occurred. + * @param data UserData of the player. + * @param time Epoch ms the event occurred. * @param banned Is the player banned? */ public static void processLogoutInfo(UserData data, long time, boolean banned) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/ImportUtils.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/ImportUtils.java index 3e82c5c9b..be17fc0a7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/ImportUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/ImportUtils.java @@ -1,9 +1,11 @@ package main.java.com.djrapitops.plan.data.handling.importing; import com.djrapitops.pluginbridge.plan.importing.OnTimeImporter; +import main.java.com.djrapitops.plan.Log; + import java.util.HashMap; import java.util.Map; -import main.java.com.djrapitops.plan.Log; + import static org.bukkit.Bukkit.getPluginManager; /** diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/Importer.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/Importer.java index 8fd167b8d..86a124843 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/Importer.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/Importer.java @@ -2,15 +2,6 @@ package main.java.com.djrapitops.plan.data.handling.importing; import com.djrapitops.plugin.utilities.player.Fetch; import com.djrapitops.plugin.utilities.player.IOfflinePlayer; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.stream.Collectors; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.UserData; @@ -21,6 +12,11 @@ import main.java.com.djrapitops.plan.database.Database; import main.java.com.djrapitops.plan.utilities.Benchmark; import main.java.com.djrapitops.plan.utilities.NewPlayerCreator; +import java.sql.SQLException; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + /** * Abstract class used for importing data from other plugins. * @@ -52,11 +48,11 @@ public abstract class Importer { /** * Method used for the import. - * + *

* Creates UserData for players that have not been saved to the database. * * @param uuids UUIDs to be imported - * @param args arguments for the import + * @param args arguments for the import * @return success */ public boolean importData(Collection uuids, String... args) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/OfflinePlayerImporter.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/OfflinePlayerImporter.java index a8b079e43..0f903d190 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/OfflinePlayerImporter.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/importing/OfflinePlayerImporter.java @@ -1,8 +1,9 @@ package main.java.com.djrapitops.plan.data.handling.importing; -import java.util.UUID; import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; +import java.util.UUID; + /** * Imports all players who have not joined since Plan was installed. * diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ChatInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ChatInfo.java index 97fda4881..99def6e85 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ChatInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ChatInfo.java @@ -19,9 +19,9 @@ public class ChatInfo extends HandlingInfo { /** * Constructor. * - * @param uuid UUID of the player. + * @param uuid UUID of the player. * @param nickname Nickname of the player. - * @param message Message the player sent. + * @param message Message the player sent. */ public ChatInfo(UUID uuid, String nickname, String message) { super(uuid, InfoType.CHAT, 0L); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/DeathInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/DeathInfo.java index 30ee3704f..9c077c132 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/DeathInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/DeathInfo.java @@ -1,8 +1,9 @@ package main.java.com.djrapitops.plan.data.handling.info; -import java.util.UUID; import main.java.com.djrapitops.plan.data.UserData; +import java.util.UUID; + /** * HandlingInfo Class for DeathEvent information. * diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/GamemodeInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/GamemodeInfo.java index 9d5a782d8..44f85af70 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/GamemodeInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/GamemodeInfo.java @@ -1,10 +1,11 @@ package main.java.com.djrapitops.plan.data.handling.info; import com.djrapitops.plugin.utilities.player.Gamemode; -import java.util.UUID; import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.handling.GamemodeHandling; +import java.util.UUID; + /** * HandlingInfo Class for GamemodeChangeEvent information. * @@ -20,7 +21,7 @@ public class GamemodeInfo extends HandlingInfo { * * @param uuid UUID of the player. * @param time Epoch ms of the event. - * @param gm Gamemode the player changed to. + * @param gm Gamemode the player changed to. */ public GamemodeInfo(UUID uuid, long time, Gamemode gm) { super(uuid, InfoType.GM, time); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/HandlingInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/HandlingInfo.java index 1e3f25b02..7b5e6f93e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/HandlingInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/HandlingInfo.java @@ -22,7 +22,7 @@ public abstract class HandlingInfo { * * @param uuid UUID of the player * @param type InfoType enum of the event. Only used for debugging different - * types. + * types. * @param time Epoch ms of the event. */ public HandlingInfo(UUID uuid, InfoType type, long time) { @@ -60,7 +60,7 @@ public abstract class HandlingInfo { /** * Process the info and modify the UserData object accordingly. - * + *

* If the UUIDs don't match no change should occur. * * @param uData UserData object to modify. diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/InfoType.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/InfoType.java index 793e54406..ed4f13d8f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/InfoType.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/InfoType.java @@ -2,9 +2,9 @@ package main.java.com.djrapitops.plan.data.handling.info; /** * Enum class for the types of HandlingInfo to be processed. - * + *

* Type is only used for debugging. - * + *

* OTHER should be used when * * @author Rsl1122 diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KickInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KickInfo.java index ff5ab977f..59fcb4350 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KickInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KickInfo.java @@ -1,8 +1,9 @@ package main.java.com.djrapitops.plan.data.handling.info; -import java.util.UUID; import main.java.com.djrapitops.plan.data.UserData; +import java.util.UUID; + /** * HandlingInfo Class for KickEvent information. * diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KillInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KillInfo.java index 4a17348a3..1ccf83b1c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KillInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/KillInfo.java @@ -21,9 +21,9 @@ public class KillInfo extends HandlingInfo { /** * Constructor. * - * @param uuid UUID of the killer. - * @param time Epoch ms the event occurred. - * @param dead Dead entity (Mob or Player) + * @param uuid UUID of the killer. + * @param time Epoch ms the event occurred. + * @param dead Dead entity (Mob or Player) * @param weaponName Weapon used. */ public KillInfo(UUID uuid, long time, LivingEntity dead, String weaponName) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LoginInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LoginInfo.java index dd12297af..3d9216db3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LoginInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LoginInfo.java @@ -24,12 +24,12 @@ public class LoginInfo extends HandlingInfo { /** * Constructor. * - * @param uuid UUID of the player. - * @param time Epoch ms of the event. - * @param ip IP of the player - * @param banned Is the player banned? - * @param nickname Nickname of the player - * @param gm current gamemode of the player + * @param uuid UUID of the player. + * @param time Epoch ms of the event. + * @param ip IP of the player + * @param banned Is the player banned? + * @param nickname Nickname of the player + * @param gm current gamemode of the player * @param loginTimes number the loginTimes should be incremented with. */ public LoginInfo(UUID uuid, long time, InetAddress ip, boolean banned, String nickname, Gamemode gm, int loginTimes) { @@ -44,12 +44,12 @@ public class LoginInfo extends HandlingInfo { /** * Constructor for not incrementing the loginTimes. * - * @param uuid UUID of the player. - * @param time Epoch ms of the event. - * @param ip IP of the player - * @param banned Is the player banned? + * @param uuid UUID of the player. + * @param time Epoch ms of the event. + * @param ip IP of the player + * @param banned Is the player banned? * @param nickname Nickname of the player - * @param gm current gamemode of the player + * @param gm current gamemode of the player */ public LoginInfo(UUID uuid, long time, InetAddress ip, boolean banned, String nickname, Gamemode gm) { this(uuid, time, ip, banned, nickname, gm, 0); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LogoutInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LogoutInfo.java index 87ed6b107..3e24cdd9f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LogoutInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/LogoutInfo.java @@ -22,12 +22,12 @@ public class LogoutInfo extends HandlingInfo { /** * Constructor. * - * @param uuid UUID of the player. - * @param time Epoch ms of the event. + * @param uuid UUID of the player. + * @param time Epoch ms of the event. * @param banned Is the player banned - * @param gm current gamemode of the player - * @param sData session that has been ended at the moment of the logout - * event. + * @param gm current gamemode of the player + * @param sData session that has been ended at the moment of the logout + * event. */ public LogoutInfo(UUID uuid, long time, boolean banned, Gamemode gm, SessionData sData) { super(uuid, InfoType.LOGOUT, time); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ReloadInfo.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ReloadInfo.java index 5d4d7043e..b38c859ef 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ReloadInfo.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/info/ReloadInfo.java @@ -23,12 +23,12 @@ public class ReloadInfo extends HandlingInfo { /** * Constructor. * - * @param uuid UUID of the player. - * @param time Epoch ms of the event. - * @param ip IP of the player - * @param banned Is the player banned? + * @param uuid UUID of the player. + * @param time Epoch ms of the event. + * @param ip IP of the player + * @param banned Is the player banned? * @param nickname Nickname of the player - * @param gm current gamemode of the player + * @param gm current gamemode of the player */ public ReloadInfo(UUID uuid, long time, InetAddress ip, boolean banned, String nickname, Gamemode gm) { super(uuid, InfoType.RELOAD, time); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java index 315b42bf1..c7baf997f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java @@ -34,7 +34,7 @@ public class PlanPlayerListener implements Listener { /** * Class Constructor. - * + *

* Copies the references to multiple handlers from Current instance of * handler. * @@ -47,7 +47,7 @@ public class PlanPlayerListener implements Listener { /** * PlayerJoinEvent Listener. - * + *

* If player is a new player, creates a new data in the database for the * player. Retrieves the UserData, updates and then saves it to the Cache. * @@ -80,7 +80,7 @@ public class PlanPlayerListener implements Listener { /** * PlayerQuitEvent Listener. - * + *

* Retrieves the current UserData for the Player, updates it, saves the data * to Database and clears it from cache. * @@ -99,7 +99,7 @@ public class PlanPlayerListener implements Listener { /** * PlayerKickEvent Listener. - * + *

* Updates current playerdata and saves it to the Database. * * @param event Fired event diff --git a/Plan/src/main/java/com/djrapitops/plan/data/listeners/TPSCountTimer.java b/Plan/src/main/java/com/djrapitops/plan/data/listeners/TPSCountTimer.java index 2fa7b4b5a..43bde8189 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/listeners/TPSCountTimer.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/listeners/TPSCountTimer.java @@ -21,10 +21,10 @@ import java.util.List; */ public class TPSCountTimer extends AbsRunnable { - private long lastCheckNano; private final Plan plugin; private final DataCacheHandler handler; private final List history; + private long lastCheckNano; public TPSCountTimer(Plan plugin) { super("TPSCountTimer"); @@ -60,7 +60,7 @@ public class TPSCountTimer extends AbsRunnable { * Calculates the TPS * * @param diff The time difference between the last run and the new run - * @param now The time right now + * @param now The time right now * @return the TPS */ private TPS calculateTPS(long diff, long now) { @@ -84,8 +84,8 @@ public class TPSCountTimer extends AbsRunnable { /** * Gets the TPS for Paper * - * @param now The time right now - * @param cpuUsage The usage of the CPU + * @param now The time right now + * @param cpuUsage The usage of the CPU * @param playersOnline The amount of players that are online * @return the TPS */ @@ -104,9 +104,9 @@ public class TPSCountTimer extends AbsRunnable { /** * Gets the TPS for a Spigot / Bukkit * - * @param diff The difference between the last run and this run - * @param now The time right now - * @param cpuUsage The usage of the CPU + * @param diff The difference between the last run and this run + * @param now The time right now + * @param cpuUsage The usage of the CPU * @param playersOnline The amount of players that are online * @return the TPS */ diff --git a/Plan/src/main/java/com/djrapitops/plan/database/Container.java b/Plan/src/main/java/com/djrapitops/plan/database/Container.java index 5fa72c0bc..ed9cd2002 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/Container.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/Container.java @@ -3,9 +3,9 @@ package main.java.com.djrapitops.plan.database; /** * Class to contain objects in the batches. * + * @param Object stored. * @author Rsl1122 * @since 3.4.3 - * @param Object stored. */ public class Container { @@ -16,7 +16,7 @@ public class Container { * Constructor for the object. * * @param object Object to place inside the container. - * @param id UserID related to the object. + * @param id UserID related to the object. */ public Container(T object, int id) { this.object = object; diff --git a/Plan/src/main/java/com/djrapitops/plan/database/DBUtils.java b/Plan/src/main/java/com/djrapitops/plan/database/DBUtils.java index c641b9136..e60d662d4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/DBUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/DBUtils.java @@ -25,9 +25,9 @@ public class DBUtils { * Splits a collection of objects into lists with the size defined by * BATCH_SIZE. * - * @param Object type + * @param Object type * @param objects Collection of the objects. // * @return Lists with max - * size of BATCH_SIZE. + * size of BATCH_SIZE. * @return */ public static List> splitIntoBatches(Collection objects) { @@ -50,7 +50,6 @@ public class DBUtils { } /** - * * @param * @param objects * @return diff --git a/Plan/src/main/java/com/djrapitops/plan/database/Database.java b/Plan/src/main/java/com/djrapitops/plan/database/Database.java index 3b8ec5654..b1eb42a05 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/Database.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/Database.java @@ -10,7 +10,7 @@ import java.util.*; /** * Abstract class representing a Database. - * + *

* All methods should be only called from an asynchronous thread, unless stated * otherwise. * @@ -91,7 +91,7 @@ public abstract class Database { /** * Initiates the database. - * + *

* Default method returns false. * * @return Was the initiation successful? @@ -103,12 +103,12 @@ public abstract class Database { /** * Used to give Database processors to call with UserData after they have * been fetched from the database. - * + *

* This method is a shortcut method for multiple parameters. * - * @param uuid UUID of the player. + * @param uuid UUID of the player. * @param processors Processors to call with the UserData after the fetch is - * complete. + * complete. * @throws SQLException If a database error occurs. */ public void giveUserDataToProcessors(UUID uuid, DBCallableProcessor... processors) throws SQLException { @@ -119,16 +119,16 @@ public abstract class Database { * Used to give Database processors to call with UserData after they have * been fetched from the database. * - * @param uuid UUID of the player. + * @param uuid UUID of the player. * @param processors Processors to call with the UserData after the fetch is - * complete. + * complete. * @throws SQLException If a database error occurs. */ public abstract void giveUserDataToProcessors(UUID uuid, Collection processors) throws SQLException; /** * Used to get all UserData for multiple UUIDs. - * + *

* Should only be called from async thread. * * @param uuids UUIDs to fetch data for. @@ -168,7 +168,7 @@ public abstract class Database { /** * Used to get the name of the database type. - * + *

* Thread safe. * * @return SQLite/MySQL @@ -177,7 +177,7 @@ public abstract class Database { /** * Used to get the config name of the database type. - * + *

* Thread safe. * * @return sqlite/mysql @@ -199,7 +199,7 @@ public abstract class Database { * Used to set the database schema version. * * @param version Integer starting from 0, incremented by one when schema is - * updated. + * updated. * @throws SQLException If a database error occurs. */ public abstract void setVersion(int version) throws SQLException; @@ -222,7 +222,7 @@ public abstract class Database { /** * Used to clear all data from the database. - * + *

* Uses DELETE * FROM table. * * @return Success of removal. @@ -233,7 +233,7 @@ public abstract class Database { * Used to save CommandUse map. * * @param data String command (key), Integer times used - * @throws SQLException If a database error occurs. + * @throws SQLException If a database error occurs. * @throws NullPointerException If the database has not initialized tables. */ public void saveCommandUse(Map data) throws SQLException, NullPointerException { diff --git a/Plan/src/main/java/com/djrapitops/plan/database/databases/MySQLDB.java b/Plan/src/main/java/com/djrapitops/plan/database/databases/MySQLDB.java index 1140c5b69..21632a8f6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/databases/MySQLDB.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/databases/MySQLDB.java @@ -1,15 +1,15 @@ package main.java.com.djrapitops.plan.database.databases; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Phrase; import main.java.com.djrapitops.plan.Plan; import org.bukkit.configuration.file.FileConfiguration; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + /** - * * @author Rsl1122 */ public class MySQLDB extends SQLDB { @@ -45,7 +45,6 @@ public class MySQLDB extends SQLDB { } /** - * * @return */ @Override diff --git a/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLDB.java b/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLDB.java index 81ac4591f..fa2a3c4a6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLDB.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLDB.java @@ -20,7 +20,6 @@ import java.util.function.Function; import java.util.stream.Collectors; /** - * * @author Rsl1122 */ public abstract class SQLDB extends Database { @@ -30,7 +29,6 @@ public abstract class SQLDB extends Database { private Connection connection; /** - * * @param plugin * @param supportsModification */ @@ -75,7 +73,6 @@ public abstract class SQLDB extends Database { } /** - * * @return */ @Override @@ -99,7 +96,6 @@ public abstract class SQLDB extends Database { } /** - * * @return @throws SQLException */ public boolean checkConnection() throws SQLException { @@ -178,7 +174,6 @@ public abstract class SQLDB extends Database { } /** - * * @return */ public Table[] getAllTables() { @@ -186,7 +181,6 @@ public abstract class SQLDB extends Database { } /** - * * @return */ public Table[] getAllTablesInRemoveOrder() { @@ -194,13 +188,11 @@ public abstract class SQLDB extends Database { } /** - * * @return */ public abstract Connection getNewConnection(); /** - * * @throws SQLException */ @Override @@ -212,7 +204,6 @@ public abstract class SQLDB extends Database { } /** - * * @return @throws SQLException */ @Override @@ -221,7 +212,6 @@ public abstract class SQLDB extends Database { } /** - * * @param version * @throws SQLException */ @@ -231,7 +221,6 @@ public abstract class SQLDB extends Database { } /** - * * @param uuid * @return */ @@ -252,7 +241,6 @@ public abstract class SQLDB extends Database { } /** - * * @param uuid * @return * @throws SQLException @@ -281,7 +269,6 @@ public abstract class SQLDB extends Database { } /** - * * @param uuid * @param processors * @throws SQLException @@ -325,7 +312,6 @@ public abstract class SQLDB extends Database { } /** - * * @param uuidsCol * @return * @throws SQLException @@ -374,7 +360,6 @@ public abstract class SQLDB extends Database { } /** - * * @param data * @throws SQLException */ @@ -430,7 +415,6 @@ public abstract class SQLDB extends Database { } /** - * * @param data * @throws SQLException */ @@ -476,7 +460,6 @@ public abstract class SQLDB extends Database { } /** - * * @return */ @Override @@ -492,7 +475,6 @@ public abstract class SQLDB extends Database { } /** - * * @return */ public boolean supportsModification() { @@ -500,7 +482,6 @@ public abstract class SQLDB extends Database { } /** - * * @return */ public Connection getConnection() { diff --git a/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLiteDB.java b/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLiteDB.java index d1d7aab05..6b07d0bec 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLiteDB.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/databases/SQLiteDB.java @@ -1,13 +1,13 @@ package main.java.com.djrapitops.plan.database.databases; +import main.java.com.djrapitops.plan.Plan; + import java.io.File; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import main.java.com.djrapitops.plan.Plan; /** - * * @author Rsl1122 */ public class SQLiteDB extends SQLDB { @@ -24,7 +24,6 @@ public class SQLiteDB extends SQLDB { } /** - * * @param plugin * @param dbName */ @@ -44,7 +43,6 @@ public class SQLiteDB extends SQLDB { } /** - * * @param dbName * @return */ @@ -59,7 +57,6 @@ public class SQLiteDB extends SQLDB { } /** - * * @return */ @Override diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/CommandUseTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/CommandUseTable.java index 0fa042663..bf6de867d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/CommandUseTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/CommandUseTable.java @@ -1,16 +1,16 @@ package main.java.com.djrapitops.plan.database.tables; +import main.java.com.djrapitops.plan.Log; +import main.java.com.djrapitops.plan.database.databases.SQLDB; +import main.java.com.djrapitops.plan.utilities.Benchmark; + import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; -import main.java.com.djrapitops.plan.Log; -import main.java.com.djrapitops.plan.database.databases.SQLDB; -import main.java.com.djrapitops.plan.utilities.Benchmark; /** - * * @author Rsl1122 */ public class CommandUseTable extends Table { @@ -19,7 +19,6 @@ public class CommandUseTable extends Table { private final String columnTimesUsed; /** - * * @param db * @param usingMySQL */ @@ -30,7 +29,6 @@ public class CommandUseTable extends Table { } /** - * * @return */ @Override @@ -49,7 +47,6 @@ public class CommandUseTable extends Table { } /** - * * @return @throws SQLException */ public Map getCommandUse() throws SQLException { @@ -78,7 +75,6 @@ public class CommandUseTable extends Table { } /** - * * @param data * @throws SQLException * @throws NullPointerException diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/GMTimesTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/GMTimesTable.java index 7fe617ea8..20672bd19 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/GMTimesTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/GMTimesTable.java @@ -10,7 +10,6 @@ import java.sql.SQLException; import java.util.*; /** - * * @author Rsl1122 */ public class GMTimesTable extends Table { @@ -22,7 +21,6 @@ public class GMTimesTable extends Table { private final String columnSpectatorTime; /** - * * @param db * @param usingMySQL */ @@ -40,7 +38,6 @@ public class GMTimesTable extends Table { } /** - * * @return */ @Override @@ -64,7 +61,6 @@ public class GMTimesTable extends Table { } /** - * * @param userId * @return */ @@ -84,7 +80,6 @@ public class GMTimesTable extends Table { } /** - * * @param userId * @return * @throws SQLException @@ -137,7 +132,6 @@ public class GMTimesTable extends Table { } /** - * * @param userId * @param gamemodeTimes * @throws SQLException @@ -152,11 +146,11 @@ public class GMTimesTable extends Table { try { statement = prepareStatement( "UPDATE " + tableName + " SET " - + columnSurvivalTime + "=?, " - + columnCreativeTime + "=?, " - + columnAdventureTime + "=?, " - + columnSpectatorTime + "=? " - + " WHERE (" + columnUserID + "=?)"); + + columnSurvivalTime + "=?, " + + columnCreativeTime + "=?, " + + columnAdventureTime + "=?, " + + columnSpectatorTime + "=? " + + " WHERE (" + columnUserID + "=?)"); statement.setInt(5, userId); for (int i = 0; i < gms.length; i++) { try { @@ -208,11 +202,11 @@ public class GMTimesTable extends Table { try { statement = prepareStatement( "UPDATE " + tableName + " SET " - + columnSurvivalTime + "=?, " - + columnCreativeTime + "=?, " - + columnAdventureTime + "=?, " - + columnSpectatorTime + "=? " - + " WHERE (" + columnUserID + "=?)"); + + columnSurvivalTime + "=?, " + + columnCreativeTime + "=?, " + + columnAdventureTime + "=?, " + + columnSpectatorTime + "=? " + + " WHERE (" + columnUserID + "=?)"); boolean commitRequired = false; for (Integer id : gamemodeTimes.keySet()) { if (!savedIDs.contains(id)) { @@ -256,12 +250,12 @@ public class GMTimesTable extends Table { try { statement = prepareStatement( "INSERT INTO " + tableName + " (" - + columnUserID + ", " - + columnSurvivalTime + ", " - + columnCreativeTime + ", " - + columnAdventureTime + ", " - + columnSpectatorTime - + ") VALUES (?, ?, ?, ?, ?)"); + + columnUserID + ", " + + columnSurvivalTime + ", " + + columnCreativeTime + ", " + + columnAdventureTime + ", " + + columnSpectatorTime + + ") VALUES (?, ?, ?, ?, ?)"); boolean commitRequired = false; for (Integer id : gamemodeTimes.keySet()) { statement.setInt(1, id); diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/IPsTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/IPsTable.java index 516aa8f2e..bb07eab03 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/IPsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/IPsTable.java @@ -1,23 +1,17 @@ package main.java.com.djrapitops.plan.database.tables; +import main.java.com.djrapitops.plan.Log; +import main.java.com.djrapitops.plan.database.databases.SQLDB; +import main.java.com.djrapitops.plan.utilities.Benchmark; + import java.net.InetAddress; import java.net.UnknownHostException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import main.java.com.djrapitops.plan.Log; -import main.java.com.djrapitops.plan.database.databases.SQLDB; -import main.java.com.djrapitops.plan.utilities.Benchmark; +import java.util.*; /** - * * @author Rsl1122 */ public class IPsTable extends Table { @@ -26,7 +20,6 @@ public class IPsTable extends Table { private final String columnIP; /** - * * @param db * @param usingMySQL */ @@ -37,7 +30,6 @@ public class IPsTable extends Table { } /** - * * @return */ @Override @@ -58,7 +50,6 @@ public class IPsTable extends Table { } /** - * * @param userId * @return */ @@ -78,7 +69,6 @@ public class IPsTable extends Table { } /** - * * @param userId * @return * @throws SQLException @@ -107,7 +97,6 @@ public class IPsTable extends Table { } /** - * * @param userId * @param ips * @throws SQLException @@ -147,7 +136,6 @@ public class IPsTable extends Table { } /** - * * @param ids * @return * @throws SQLException @@ -185,7 +173,6 @@ public class IPsTable extends Table { } /** - * * @param ips * @throws SQLException */ diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/KillsTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/KillsTable.java index 3ee5a6c17..0f11df651 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/KillsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/KillsTable.java @@ -1,22 +1,17 @@ package main.java.com.djrapitops.plan.database.tables; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.data.KillData; import main.java.com.djrapitops.plan.database.databases.SQLDB; import main.java.com.djrapitops.plan.utilities.Benchmark; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; +import java.util.stream.Collectors; + /** - * * @author Rsl1122 */ public class KillsTable extends Table { @@ -27,7 +22,6 @@ public class KillsTable extends Table { private final String columnDate; /** - * * @param db * @param usingMySQL */ @@ -40,7 +34,6 @@ public class KillsTable extends Table { } /** - * * @return */ @Override @@ -64,7 +57,6 @@ public class KillsTable extends Table { } /** - * * @param userId * @return */ @@ -85,7 +77,6 @@ public class KillsTable extends Table { } /** - * * @param userId * @return * @throws SQLException @@ -114,7 +105,6 @@ public class KillsTable extends Table { } /** - * * @param userId * @param kills * @throws SQLException @@ -165,7 +155,6 @@ public class KillsTable extends Table { } /** - * * @param ids * @param uuids * @return @@ -203,7 +192,6 @@ public class KillsTable extends Table { } /** - * * @param kills * @param uuids * @throws SQLException diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/LocationsTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/LocationsTable.java index e8872085c..787f097bb 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/LocationsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/LocationsTable.java @@ -1,12 +1,12 @@ package main.java.com.djrapitops.plan.database.tables; -import java.sql.PreparedStatement; -import java.sql.SQLException; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.database.databases.SQLDB; +import java.sql.PreparedStatement; +import java.sql.SQLException; + /** - * * @author Rsl1122 */ @Deprecated @@ -18,18 +18,7 @@ public class LocationsTable extends Table { private final String columnCoordinatesZ; private final String columnWorld; - @Override - @Deprecated - public boolean removeAllData() { - try { - execute("DELETE FROM " + tableName); - } catch (Exception e) { - } - return true; - } - /** - * * @param db * @param usingMySQL */ @@ -43,8 +32,17 @@ public class LocationsTable extends Table { columnWorld = "world_name"; } + @Override + @Deprecated + public boolean removeAllData() { + try { + execute("DELETE FROM " + tableName); + } catch (Exception e) { + } + return true; + } + /** - * * @return */ @Override @@ -70,7 +68,6 @@ public class LocationsTable extends Table { } /** - * * @param userId * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/NicknamesTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/NicknamesTable.java index 78bcc3230..cc52579f4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/NicknamesTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/NicknamesTable.java @@ -1,20 +1,15 @@ package main.java.com.djrapitops.plan.database.tables; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.database.databases.SQLDB; import main.java.com.djrapitops.plan.utilities.Benchmark; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + /** - * * @author Rsl1122 */ public class NicknamesTable extends Table { @@ -24,7 +19,6 @@ public class NicknamesTable extends Table { private final String columnCurrent; /** - * * @param db * @param usingMySQL */ @@ -36,7 +30,6 @@ public class NicknamesTable extends Table { } /** - * * @return */ @Override @@ -75,7 +68,6 @@ public class NicknamesTable extends Table { } /** - * * @param userId * @return */ @@ -95,7 +87,6 @@ public class NicknamesTable extends Table { } /** - * * @param userId * @return * @throws SQLException @@ -133,7 +124,6 @@ public class NicknamesTable extends Table { } /** - * * @param userId * @param names * @param lastNick @@ -177,7 +167,6 @@ public class NicknamesTable extends Table { } /** - * * @param ids * @return * @throws SQLException @@ -228,7 +217,6 @@ public class NicknamesTable extends Table { } /** - * * @param nicknames * @param lastNicks * @throws SQLException diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/SecurityTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/SecurityTable.java index a42e725bb..537e758fc 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/SecurityTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/SecurityTable.java @@ -16,7 +16,6 @@ import java.util.ArrayList; import java.util.List; /** - * * @author Rsl1122 */ public class SecurityTable extends Table { diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/SessionsTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/SessionsTable.java index b969d2a67..7596a2b36 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/SessionsTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/SessionsTable.java @@ -14,7 +14,6 @@ import java.sql.SQLException; import java.util.*; /** - * * @author Rsl1122 */ public class SessionsTable extends Table { @@ -24,7 +23,6 @@ public class SessionsTable extends Table { private final String columnSessionEnd; /** - * * @param db * @param usingMySQL */ @@ -36,7 +34,6 @@ public class SessionsTable extends Table { } /** - * * @return */ @Override @@ -58,7 +55,6 @@ public class SessionsTable extends Table { } /** - * * @param userId * @return * @throws SQLException @@ -86,7 +82,6 @@ public class SessionsTable extends Table { } /** - * * @param userId * @return */ @@ -106,7 +101,6 @@ public class SessionsTable extends Table { } /** - * * @param userId * @param sessions * @throws SQLException @@ -152,7 +146,6 @@ public class SessionsTable extends Table { } /** - * * @param ids * @return * @throws SQLException @@ -190,7 +183,6 @@ public class SessionsTable extends Table { } /** - * * @param sessions * @throws SQLException */ @@ -255,7 +247,6 @@ public class SessionsTable extends Table { } /** - * * @throws SQLException */ public void clean() throws SQLException { diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/Table.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/Table.java index a49047f84..49e5b8821 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/Table.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/Table.java @@ -13,7 +13,6 @@ import java.util.List; import java.util.Map; /** - * * @author Rsl1122 */ public abstract class Table { @@ -34,7 +33,6 @@ public abstract class Table { protected final boolean usingMySQL; /** - * * @param name * @param db * @param usingMySQL @@ -46,13 +44,11 @@ public abstract class Table { } /** - * * @return */ public abstract boolean createTable(); /** - * * @return @throws SQLException */ protected Connection getConnection() throws SQLException { @@ -64,7 +60,6 @@ public abstract class Table { } /** - * * @return @throws SQLException */ public int getVersion() throws SQLException { @@ -72,7 +67,6 @@ public abstract class Table { } /** - * * @param sql * @return * @throws SQLException @@ -83,7 +77,6 @@ public abstract class Table { } /** - * * @param sql * @return * @throws SQLException @@ -93,7 +86,6 @@ public abstract class Table { } /** - * * @param toClose */ protected void close(AutoCloseable... toClose) { @@ -101,7 +93,6 @@ public abstract class Table { } /** - * * @return */ public String getTableName() { @@ -109,7 +100,6 @@ public abstract class Table { } /** - * * @return */ public boolean removeAllData() { @@ -123,7 +113,6 @@ public abstract class Table { } /** - * * @param * @param objects * @return diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/UsersTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/UsersTable.java index a144b477b..a1200de1f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/UsersTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/UsersTable.java @@ -17,7 +17,6 @@ import java.util.function.Function; import java.util.stream.Collectors; /** - * * @author Rsl1122 */ public class UsersTable extends Table { @@ -44,7 +43,6 @@ public class UsersTable extends Table { private final String columnContainsBukkitData; /** - * * @param db * @param usingMySQL */ @@ -72,7 +70,6 @@ public class UsersTable extends Table { } /** - * * @return */ @Override @@ -129,19 +126,19 @@ public class UsersTable extends Table { String[] queries; if (usingMySQL) { queries = new String[]{ - "ALTER TABLE " + tableName + " ADD " + columnContainsBukkitData + " boolean NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD " + columnOP + " boolean NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD " + columnBanned + " boolean NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD " + columnName + " varchar(16) NOT NULL DEFAULT \'Unknown\'", - "ALTER TABLE " + tableName + " ADD " + columnRegistered + " bigint NOT NULL DEFAULT 0" + "ALTER TABLE " + tableName + " ADD " + columnContainsBukkitData + " boolean NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD " + columnOP + " boolean NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD " + columnBanned + " boolean NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD " + columnName + " varchar(16) NOT NULL DEFAULT \'Unknown\'", + "ALTER TABLE " + tableName + " ADD " + columnRegistered + " bigint NOT NULL DEFAULT 0" }; } else { queries = new String[]{ - "ALTER TABLE " + tableName + " ADD COLUMN " + columnContainsBukkitData + " boolean NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD COLUMN " + columnOP + " boolean NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD COLUMN " + columnBanned + " boolean NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD COLUMN " + columnName + " varchar(16) NOT NULL DEFAULT \'Unknown\'", - "ALTER TABLE " + tableName + " ADD COLUMN " + columnRegistered + " bigint NOT NULL DEFAULT 0" + "ALTER TABLE " + tableName + " ADD COLUMN " + columnContainsBukkitData + " boolean NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD COLUMN " + columnOP + " boolean NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD COLUMN " + columnBanned + " boolean NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD COLUMN " + columnName + " varchar(16) NOT NULL DEFAULT \'Unknown\'", + "ALTER TABLE " + tableName + " ADD COLUMN " + columnRegistered + " bigint NOT NULL DEFAULT 0" }; } for (String query : queries) { @@ -156,14 +153,14 @@ public class UsersTable extends Table { String[] queries; if (usingMySQL) { queries = new String[]{ - "ALTER TABLE " + tableName + " ADD " + columnDeaths + " integer NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD " + columnMobKills + " integer NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " DROP INDEX " + columnPlayerKills + "ALTER TABLE " + tableName + " ADD " + columnDeaths + " integer NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD " + columnMobKills + " integer NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " DROP INDEX " + columnPlayerKills }; } else { queries = new String[]{ - "ALTER TABLE " + tableName + " ADD COLUMN " + columnDeaths + " integer NOT NULL DEFAULT 0", - "ALTER TABLE " + tableName + " ADD COLUMN " + columnMobKills + " integer NOT NULL DEFAULT 0" + "ALTER TABLE " + tableName + " ADD COLUMN " + columnDeaths + " integer NOT NULL DEFAULT 0", + "ALTER TABLE " + tableName + " ADD COLUMN " + columnMobKills + " integer NOT NULL DEFAULT 0" }; } for (String query : queries) { @@ -175,7 +172,6 @@ public class UsersTable extends Table { } /** - * * @param uuid * @return * @throws SQLException @@ -185,7 +181,6 @@ public class UsersTable extends Table { } /** - * * @param uuid * @return * @throws SQLException @@ -209,7 +204,6 @@ public class UsersTable extends Table { } /** - * * @param userID * @return * @throws SQLException @@ -233,7 +227,6 @@ public class UsersTable extends Table { } /** - * * @return @throws SQLException */ public Set getSavedUUIDs() throws SQLException { @@ -257,7 +250,6 @@ public class UsersTable extends Table { } /** - * * @param uuid * @return */ @@ -266,7 +258,6 @@ public class UsersTable extends Table { } /** - * * @param uuid * @return */ @@ -285,7 +276,6 @@ public class UsersTable extends Table { } /** - * * @param uuid * @return * @throws SQLException @@ -324,7 +314,6 @@ public class UsersTable extends Table { } /** - * * @param uuids * @return * @throws SQLException @@ -353,7 +342,6 @@ public class UsersTable extends Table { } /** - * * @param uuids * @return * @throws SQLException @@ -457,7 +445,6 @@ public class UsersTable extends Table { } /** - * * @param data * @throws SQLException */ @@ -487,7 +474,6 @@ public class UsersTable extends Table { } /** - * * @param data * @throws SQLException */ @@ -523,7 +509,6 @@ public class UsersTable extends Table { } /** - * * @param data * @throws SQLException */ @@ -656,7 +641,6 @@ public class UsersTable extends Table { } /** - * * @param data * @throws SQLException */ @@ -782,7 +766,6 @@ public class UsersTable extends Table { } /** - * * @param uuids * @return * @throws SQLException @@ -812,7 +795,6 @@ public class UsersTable extends Table { } /** - * * @return @throws SQLException */ public Map getAllUserIds() throws SQLException { @@ -837,7 +819,6 @@ public class UsersTable extends Table { } /** - * * @return @throws SQLException */ public Map getLoginTimes() throws SQLException { @@ -861,7 +842,6 @@ public class UsersTable extends Table { } /** - * * @return */ public String getColumnID() { @@ -869,7 +849,6 @@ public class UsersTable extends Table { } /** - * * @param playername * @return * @throws SQLException @@ -893,7 +872,6 @@ public class UsersTable extends Table { } /** - * * @param uuids * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/database/tables/VersionTable.java b/Plan/src/main/java/com/djrapitops/plan/database/tables/VersionTable.java index 47f5798f3..52629d805 100644 --- a/Plan/src/main/java/com/djrapitops/plan/database/tables/VersionTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/database/tables/VersionTable.java @@ -1,19 +1,18 @@ package main.java.com.djrapitops.plan.database.tables; +import main.java.com.djrapitops.plan.Log; +import main.java.com.djrapitops.plan.database.databases.SQLDB; + import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import main.java.com.djrapitops.plan.Log; -import main.java.com.djrapitops.plan.database.databases.SQLDB; /** - * * @author Rsl1122 */ public class VersionTable extends Table { /** - * * @param db * @param usingMySQL */ @@ -22,7 +21,6 @@ public class VersionTable extends Table { } /** - * * @return */ @Override @@ -40,7 +38,6 @@ public class VersionTable extends Table { } /** - * * @return @throws SQLException */ @Override @@ -62,7 +59,6 @@ public class VersionTable extends Table { } /** - * * @param version * @throws SQLException */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/DataRequestHandler.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/DataRequestHandler.java index 9d86498fa..4d7889e70 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/DataRequestHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/DataRequestHandler.java @@ -11,7 +11,6 @@ import java.io.FileNotFoundException; import java.util.UUID; /** - * * @author Rsl1122 */ public class DataRequestHandler { @@ -43,7 +42,7 @@ public class DataRequestHandler { * Returns the player.html as string with replaced placeholders. * * @param uuid UUID of player, whose UserData is used to replace - * placeholders with + * placeholders with * @return The html */ public String getInspectHtml(UUID uuid) { diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java index 0fdafba58..1632cbacf 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/Html.java @@ -1,15 +1,15 @@ package main.java.com.djrapitops.plan.ui.html; import com.djrapitops.plugin.utilities.Verify; +import main.java.com.djrapitops.plan.Log; + import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; -import main.java.com.djrapitops.plan.Log; /** - * * @author Rsl1122 */ public enum Html { @@ -112,37 +112,6 @@ public enum Html { } /** - * - * @return - */ - public String parse() { - return html; - } - - /** - * - * @param p - * @return - */ - public String parse(String... p) { - Verify.nullCheck(p); - String returnValue = this.html; - for (int i = 0; i < p.length; i++) { - returnValue = returnValue.replace("REPLACE" + i, p[i]); - } - return returnValue; - } - - /** - * - * @param html - */ - public void setHtml(String html) { - this.html = html; - } - - /** - * * @param localeFile */ public static void loadLocale(File localeFile) { @@ -173,4 +142,31 @@ public enum Html { } } + + /** + * @return + */ + public String parse() { + return html; + } + + /** + * @param p + * @return + */ + public String parse(String... p) { + Verify.nullCheck(p); + String returnValue = this.html; + for (int i = 0; i < p.length; i++) { + returnValue = returnValue.replace("REPLACE" + i, p[i]); + } + return returnValue; + } + + /** + * @param html + */ + public void setHtml(String html) { + this.html = html; + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/RecentPlayersButtonsCreator.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/RecentPlayersButtonsCreator.java index c3144f020..1678bce17 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/RecentPlayersButtonsCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/RecentPlayersButtonsCreator.java @@ -5,7 +5,6 @@ import main.java.com.djrapitops.plan.utilities.HtmlUtils; import java.util.List; /** - * * @author Rsl1122 */ public class RecentPlayersButtonsCreator { diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/PunchCardGraphCreator.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/PunchCardGraphCreator.java index 07ac32a9a..0d117227e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/PunchCardGraphCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/PunchCardGraphCreator.java @@ -17,13 +17,11 @@ import java.util.Objects; import java.util.stream.Collectors; /** - * * @author Rsl1122 */ public class PunchCardGraphCreator { /** - * * @param data * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/SessionLengthDistributionGraphCreator.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/SessionLengthDistributionGraphCreator.java index e4a5b733b..695667449 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/SessionLengthDistributionGraphCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/SessionLengthDistributionGraphCreator.java @@ -5,25 +5,20 @@ */ package main.java.com.djrapitops.plan.ui.html.graphs; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; import main.java.com.djrapitops.plan.data.SessionData; import main.java.com.djrapitops.plan.utilities.analysis.AnalysisUtils; import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; +import java.io.Serializable; +import java.util.*; +import java.util.stream.Collectors; + /** - * * @author Rsl1122 */ public class SessionLengthDistributionGraphCreator { /** - * * @param data * @return */ @@ -33,7 +28,6 @@ public class SessionLengthDistributionGraphCreator { } /** - * * @param lengths * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/TPSGraphCreator.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/TPSGraphCreator.java index f47412dbb..03dc4dcc0 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/TPSGraphCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/graphs/TPSGraphCreator.java @@ -10,12 +10,11 @@ import java.util.Objects; import java.util.stream.Collectors; /** - * * @author Rsl1122 * @since 3.5.0 */ public class TPSGraphCreator { - + public static String buildScatterDataStringTPS(List tpsData, long scale) { long now = MiscUtils.getTime(); List points = tpsData.stream() @@ -24,7 +23,7 @@ public class TPSGraphCreator { .collect(Collectors.toList()); return ScatterGraphCreator.scatterGraph(points, true); } - + public static List filterTPS(List tpsData, long nowMinusScale) { return tpsData.stream() .filter(Objects::nonNull) diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/CommandUseTableCreator.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/CommandUseTableCreator.java index 63ea09bfc..c045f728e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/CommandUseTableCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/CommandUseTableCreator.java @@ -10,13 +10,11 @@ import java.util.List; import java.util.Map; /** - * * @author Rsl1122 */ public class CommandUseTableCreator { /** - * * @param commandUse * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/KillsTableCreator.java b/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/KillsTableCreator.java index d3758befe..2dd416bc4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/KillsTableCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/html/tables/KillsTableCreator.java @@ -10,13 +10,11 @@ import main.java.com.djrapitops.plan.utilities.HtmlUtils; import java.util.List; /** - * * @author Rsl1122 */ public class KillsTableCreator { /** - * * @param killData * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/text/TextUI.java b/Plan/src/main/java/com/djrapitops/plan/ui/text/TextUI.java index d6b37c168..7b2dfa86a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/text/TextUI.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/text/TextUI.java @@ -16,13 +16,11 @@ import org.bukkit.ChatColor; import java.util.UUID; /** - * * @author Rsl1122 */ public class TextUI { /** - * * @param uuid * @return */ @@ -41,19 +39,18 @@ public class TextUI { boolean online = d.isOnline(); String ball = sec + " " + Phrase.BALL + main; return new String[]{ - sec + " " + Phrase.BALL + (banned ? ChatColor.DARK_RED + " Banned" : ter + (active ? " Active" : " Inactive")) + (online ? ChatColor.GREEN + " Online" : ChatColor.RED + " Offline"), - ball + " Registered: " + sec + FormatUtils.formatTimeStampYear(d.getRegistered()), - ball + " Last seen: " + sec + FormatUtils.formatTimeStamp(d.getLastPlayed()), - ball + " Playtime: " + sec + FormatUtils.formatTimeAmount(d.getPlayTime()), - ball + " Login times: " + sec + d.getLoginTimes(), - ball + " Average session length: " + sec + FormatUtils.formatTimeAmount(MathUtils.averageLong(AnalysisUtils.transformSessionDataToLengths(d.getSessions()))), - ball + " Kills: " + sec + d.getPlayerKills().size() + main + " Mobs: " + sec + d.getMobKills() + main + " Deaths: " + sec + d.getDeaths(), - ball + " Geolocation: " + sec + d.getGeolocation() + sec + " " + Phrase.BALL + (banned ? ChatColor.DARK_RED + " Banned" : ter + (active ? " Active" : " Inactive")) + (online ? ChatColor.GREEN + " Online" : ChatColor.RED + " Offline"), + ball + " Registered: " + sec + FormatUtils.formatTimeStampYear(d.getRegistered()), + ball + " Last seen: " + sec + FormatUtils.formatTimeStamp(d.getLastPlayed()), + ball + " Playtime: " + sec + FormatUtils.formatTimeAmount(d.getPlayTime()), + ball + " Login times: " + sec + d.getLoginTimes(), + ball + " Average session length: " + sec + FormatUtils.formatTimeAmount(MathUtils.averageLong(AnalysisUtils.transformSessionDataToLengths(d.getSessions()))), + ball + " Kills: " + sec + d.getPlayerKills().size() + main + " Mobs: " + sec + d.getMobKills() + main + " Deaths: " + sec + d.getDeaths(), + ball + " Geolocation: " + sec + d.getGeolocation() }; } /** - * * @return */ public static String[] getAnalysisMessages() { @@ -72,21 +69,21 @@ public class TextUI { final PlayerCountPart count = d.getPlayerCountPart(); final TPSPart tps = d.getTpsPart(); return new String[]{ - ball + " Total Players: " + sec + count.getPlayerCount(), - // - ball + " Active: " + sec + activity.getActive().size() - + main + " Inactive: " + sec + activity.getInactive().size() - + main + " Single Join: " + sec + activity.getJoinedOnce().size() - + main + " Banned: " + sec + activity.getBans().size(), - // - ball + " New Players 24h: " + sec + join.get("npday") + main + " 7d: " + sec + d.get("npweek") + main + " 30d: " + sec + d.get("npmonth"), - "", - ball + " Total Playtime: " + sec + playtime.get("totalplaytime") + main + " Player Avg: " + sec + playtime.get("avgplaytime"), - ball + " Average Session Length: " + sec + activity.get("sessionaverage"), - ball + " Total Logintimes: " + sec + join.getLoginTimes(), - ball + " Kills: " + sec + kills.getAllPlayerKills().size() + main + " Mobs: " + sec + kills.getMobKills() + main + " Deaths: " + sec + kills.getDeaths(), - "", - ball + " Average TPS 24h: " + sec + tps.get("averagetpsday") + ball + " Total Players: " + sec + count.getPlayerCount(), + // + ball + " Active: " + sec + activity.getActive().size() + + main + " Inactive: " + sec + activity.getInactive().size() + + main + " Single Join: " + sec + activity.getJoinedOnce().size() + + main + " Banned: " + sec + activity.getBans().size(), + // + ball + " New Players 24h: " + sec + join.get("npday") + main + " 7d: " + sec + d.get("npweek") + main + " 30d: " + sec + d.get("npmonth"), + "", + ball + " Total Playtime: " + sec + playtime.get("totalplaytime") + main + " Player Avg: " + sec + playtime.get("avgplaytime"), + ball + " Average Session Length: " + sec + activity.get("sessionaverage"), + ball + " Total Logintimes: " + sec + join.getLoginTimes(), + ball + " Kills: " + sec + kills.getAllPlayerKills().size() + main + " Mobs: " + sec + kills.getMobKills() + main + " Deaths: " + sec + kills.getDeaths(), + "", + ball + " Average TPS 24h: " + sec + tps.get("averagetpsday") }; } diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/WebSocketServer.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/WebSocketServer.java index d0e13be2f..f6815e8a6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/WebSocketServer.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/WebSocketServer.java @@ -27,24 +27,21 @@ import java.util.Base64; import java.util.UUID; /** - * * @author Rsl1122 */ public class WebSocketServer { private final int PORT; + private final Plan plugin; + private final DataRequestHandler dataReqHandler; private boolean enabled = false; private Socket sslServer; private ServerSocket server; - - private final Plan plugin; - private final DataRequestHandler dataReqHandler; - private boolean shutdown; /** * Class Constructor. - * + *

* Initializes DataRequestHandler * * @param plugin Current instance of Plan @@ -75,7 +72,8 @@ public class WebSocketServer { @Override public void run() { while (!shutdown) { - /*SSL*/Socket socket = null; + /*SSL*/ + Socket socket = null; InputStream input = null; OutputStream output = null; Request request = null; @@ -194,7 +192,6 @@ public class WebSocketServer { } /** - * * @return */ public boolean isEnabled() { diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/AnalysisPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/AnalysisPageResponse.java index 6c4c77b1a..5e31e55f1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/AnalysisPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/AnalysisPageResponse.java @@ -1,10 +1,10 @@ package main.java.com.djrapitops.plan.ui.webserver.response; -import java.io.OutputStream; import main.java.com.djrapitops.plan.ui.html.DataRequestHandler; +import java.io.OutputStream; + /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/ForbiddenResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/ForbiddenResponse.java index d8a633c85..188030297 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/ForbiddenResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/ForbiddenResponse.java @@ -3,7 +3,6 @@ package main.java.com.djrapitops.plan.ui.webserver.response; import java.io.OutputStream; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InspectPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InspectPageResponse.java index 2c46df017..b2052d5c4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InspectPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InspectPageResponse.java @@ -1,11 +1,11 @@ package main.java.com.djrapitops.plan.ui.webserver.response; +import main.java.com.djrapitops.plan.ui.html.DataRequestHandler; + import java.io.OutputStream; import java.util.UUID; -import main.java.com.djrapitops.plan.ui.html.DataRequestHandler; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InternalErrorResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InternalErrorResponse.java index 9157e08c6..404386ad0 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InternalErrorResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/InternalErrorResponse.java @@ -1,10 +1,10 @@ package main.java.com.djrapitops.plan.ui.webserver.response; -import java.io.OutputStream; import main.java.com.djrapitops.plan.ui.html.Html; +import java.io.OutputStream; + /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/NotFoundResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/NotFoundResponse.java index 751b4a612..6ada815e1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/NotFoundResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/NotFoundResponse.java @@ -3,7 +3,6 @@ package main.java.com.djrapitops.plan.ui.webserver.response; import java.io.OutputStream; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PlayersPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PlayersPageResponse.java index 15a640c1d..aa2f909a6 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PlayersPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PlayersPageResponse.java @@ -10,7 +10,6 @@ import java.io.OutputStream; import java.util.List; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PromptAuthorizationResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PromptAuthorizationResponse.java index 6150255d0..ec52159c7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PromptAuthorizationResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/PromptAuthorizationResponse.java @@ -3,7 +3,6 @@ package main.java.com.djrapitops.plan.ui.webserver.response; import java.io.OutputStream; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/RedirectResponse.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/RedirectResponse.java index b25b8f3b1..9ae5e93ea 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/RedirectResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/RedirectResponse.java @@ -3,7 +3,6 @@ package main.java.com.djrapitops.plan.ui.webserver.response; import java.io.OutputStream; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/Response.java b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/Response.java index 6002654ba..e28579b8c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/Response.java +++ b/Plan/src/main/java/com/djrapitops/plan/ui/webserver/response/Response.java @@ -4,7 +4,6 @@ import java.io.IOException; import java.io.OutputStream; /** - * * @author Rsl1122 * @since 3.5.2 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/Benchmark.java b/Plan/src/main/java/com/djrapitops/plan/utilities/Benchmark.java index db4f2f79b..6a9013f97 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/Benchmark.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/Benchmark.java @@ -4,13 +4,11 @@ import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Plan; /** - * * @author Rsl1122 */ public class Benchmark { /** - * * @param source */ public static void start(String source) { @@ -19,7 +17,6 @@ public class Benchmark { } /** - * * @param source * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/Check.java b/Plan/src/main/java/com/djrapitops/plan/utilities/Check.java index 2bcbbc792..f2361b56d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/Check.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/Check.java @@ -15,7 +15,7 @@ public class Check { * If check is false, send message. * * @param condition Condition. - * @param message Message to send if Condition is false + * @param message Message to send if Condition is false * @return Condition */ public static boolean isTrue(boolean condition, String message) { @@ -29,8 +29,8 @@ public class Check { * If check is false, send message to sender. * * @param condition Condition. - * @param message Message to send if Condition is false - * @param sender Sender to send message to + * @param message Message to send if Condition is false + * @param sender Sender to send message to * @return Condition */ public static boolean isTrue(boolean condition, String message, ISender sender) { @@ -44,7 +44,7 @@ public class Check { * If check is false, send error message. * * @param condition Condition. - * @param message Message to send if Condition is false + * @param message Message to send if Condition is false * @return Condition */ public static boolean isTrue_Error(boolean condition, String message) { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/FormatUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/FormatUtils.java index 780cb8950..7be0f3d9a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/FormatUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/FormatUtils.java @@ -8,13 +8,11 @@ import org.bukkit.Location; import java.text.DecimalFormat; /** - * * @author Rsl1122 */ public class FormatUtils { /** - * * @param ms * @return */ @@ -23,7 +21,6 @@ public class FormatUtils { } /** - * * @param before * @param after * @return @@ -33,7 +30,6 @@ public class FormatUtils { } /** - * * @param epochMs * @return */ @@ -42,7 +38,6 @@ public class FormatUtils { } /** - * * @param epochMs * @return */ @@ -51,7 +46,6 @@ public class FormatUtils { } /** - * * @param epochMs * @return */ @@ -74,7 +68,6 @@ public class FormatUtils { } /** - * * @param dataPoint * @return */ @@ -173,7 +166,6 @@ public class FormatUtils { } /** - * * @param d * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/HtmlUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/HtmlUtils.java index 6aab0ac0c..ca29dd44d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/HtmlUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/HtmlUtils.java @@ -12,13 +12,11 @@ import java.util.Map; import java.util.Scanner; /** - * * @author Rsl1122 */ public class HtmlUtils { /** - * * @param fileName * @return * @throws FileNotFoundException @@ -49,7 +47,6 @@ public class HtmlUtils { } /** - * * @param html * @param replaceMap * @return @@ -62,7 +59,6 @@ public class HtmlUtils { } /** - * * @return */ public static String getServerAnalysisUrlWithProtocol() { @@ -70,7 +66,6 @@ public class HtmlUtils { } /** - * * @return */ public static String getServerAnalysisUrl() { @@ -84,7 +79,6 @@ public class HtmlUtils { } /** - * * @param playerName * @return */ @@ -93,7 +87,6 @@ public class HtmlUtils { } /** - * * @param playerName * @return */ @@ -112,7 +105,6 @@ public class HtmlUtils { } /** - * * @param string * @return */ @@ -124,7 +116,6 @@ public class HtmlUtils { } /** - * * @param pluginNames * @param placeholders * @return @@ -170,14 +161,13 @@ public class HtmlUtils { } /** - * * @param string * @return */ public static String swapColorsToSpan(String string) { Html[] replacer = new Html[]{Html.COLOR_0, Html.COLOR_1, Html.COLOR_2, Html.COLOR_3, - Html.COLOR_4, Html.COLOR_5, Html.COLOR_6, Html.COLOR_7, Html.COLOR_8, Html.COLOR_9, - Html.COLOR_a, Html.COLOR_b, Html.COLOR_c, Html.COLOR_d, Html.COLOR_e, Html.COLOR_f}; + Html.COLOR_4, Html.COLOR_5, Html.COLOR_6, Html.COLOR_7, Html.COLOR_8, Html.COLOR_9, + Html.COLOR_a, Html.COLOR_b, Html.COLOR_c, Html.COLOR_d, Html.COLOR_e, Html.COLOR_f}; for (Html html : replacer) { string = string.replace("§" + html.name().charAt(6), html.parse()); diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/ManageUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/ManageUtils.java index fb280cf85..0bc1ab7a7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/ManageUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/ManageUtils.java @@ -14,7 +14,6 @@ import java.util.*; import java.util.stream.Collectors; /** - * * @author Rsl1122 */ public class ManageUtils { @@ -22,7 +21,7 @@ public class ManageUtils { /** * Creates a new backup sqlite file with the data of copyFromDB. * - * @param dbName Name of database (mysql/sqlite) + * @param dbName Name of database (mysql/sqlite) * @param copyFromDB Database you want to backup. * @return success? * @throws java.sql.SQLException @@ -60,8 +59,8 @@ public class ManageUtils { * Clears a database and copies data from other database to that database. * * @param clearAndCopyToDB Database that will be cleared data will be copied - * to. - * @param copyFromDB Database where data will be copied from + * to. + * @param copyFromDB Database where data will be copied from * @param fromDBsavedUUIDs UUID collection of saved uuids in the copyFromDB * @return success? */ @@ -80,7 +79,6 @@ public class ManageUtils { } /** - * * @param sessions * @return */ @@ -98,7 +96,6 @@ public class ManageUtils { } /** - * * @param sessions * @param loginTimes * @return diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java index ed00c3218..1a90cc9e9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java @@ -3,6 +3,10 @@ package main.java.com.djrapitops.plan.utilities; import com.djrapitops.plugin.command.CommandUtils; import com.djrapitops.plugin.command.ISender; import com.djrapitops.plugin.utilities.player.Fetch; +import com.djrapitops.plugin.utilities.player.IOfflinePlayer; +import main.java.com.djrapitops.plan.Permissions; +import main.java.com.djrapitops.plan.Phrase; + import java.io.Closeable; import java.io.IOException; import java.util.Collection; @@ -10,10 +14,6 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import com.djrapitops.plugin.utilities.player.IOfflinePlayer; -import main.java.com.djrapitops.plan.Permissions; -import main.java.com.djrapitops.plan.Phrase; - /** * Utility method class containing various static methods. * @@ -32,7 +32,6 @@ public class MiscUtils { } /** - * * @param args * @param sender * @return @@ -44,7 +43,7 @@ public class MiscUtils { /** * Used by the inspect command. * - * @param args Arguments of a command, must not be empty if console sender. + * @param args Arguments of a command, must not be empty if console sender. * @param sender Command sender * @param perm * @return The name of the player (first argument or sender) diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/NewPlayerCreator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/NewPlayerCreator.java index efe12999c..b77c9a14c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/NewPlayerCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/NewPlayerCreator.java @@ -6,7 +6,6 @@ import com.djrapitops.plugin.utilities.player.IPlayer; import main.java.com.djrapitops.plan.data.UserData; /** - * * @author Rsl1122 */ public class NewPlayerCreator { @@ -35,7 +34,7 @@ public class NewPlayerCreator { * Creates a new instance of UserData with default values. * * @param player Player the UserData is created for. - * @param gm Gamemode set as the starting Gamemode + * @param gm Gamemode set as the starting Gamemode * @return a new UserData object */ public static UserData createNewPlayer(IOfflinePlayer player, Gamemode gm) { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/PassEncryptUtil.java b/Plan/src/main/java/com/djrapitops/plan/utilities/PassEncryptUtil.java index 97917ff82..d8fac5fe1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/PassEncryptUtil.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/PassEncryptUtil.java @@ -9,7 +9,7 @@ import java.security.spec.InvalidKeySpecException; /** * Password Encryption utility. - * + *

* https://github.com/defuse/password-hashing/blob/master/PasswordStorage.java * * @author Defuse @@ -17,37 +17,11 @@ import java.security.spec.InvalidKeySpecException; */ public class PassEncryptUtil { - @SuppressWarnings("serial") - static public class InvalidHashException extends Exception { - - public InvalidHashException(String message) { - super(message); - } - - public InvalidHashException(String message, Throwable source) { - super(message, source); - } - } - - @SuppressWarnings("serial") - static public class CannotPerformOperationException extends Exception { - - public CannotPerformOperationException(String message) { - super(message); - } - - public CannotPerformOperationException(String message, Throwable source) { - super(message, source); - } - } - public static final String PBKDF2_ALGORITHM = "PBKDF2WithHmacSHA1"; - // These constants may be changed without breaking existing hashes. public static final int SALT_BYTE_SIZE = 24; public static final int HASH_BYTE_SIZE = 18; public static final int PBKDF2_ITERATIONS = 64000; - // These constants define the encoding and may not be changed. public static final int HASH_SECTIONS = 5; public static final int HASH_ALGORITHM_INDEX = 0; @@ -146,7 +120,7 @@ public class PassEncryptUtil { ); } - // Compute the hash of the provided password, using the same salt, + // Compute the hash of the provided password, using the same salt, // iteration count, and hash length byte[] testHash = pbkdf2(password, salt, iterations, hash.length); // Compare the hashes in constant time. The password is correct if @@ -186,4 +160,28 @@ public class PassEncryptUtil { return DatatypeConverter.printBase64Binary(array); } + @SuppressWarnings("serial") + static public class InvalidHashException extends Exception { + + public InvalidHashException(String message) { + super(message); + } + + public InvalidHashException(String message, Throwable source) { + super(message, source); + } + } + + @SuppressWarnings("serial") + static public class CannotPerformOperationException extends Exception { + + public CannotPerformOperationException(String message) { + super(message); + } + + public CannotPerformOperationException(String message, Throwable source) { + super(message, source); + } + } + } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/PlaceholderUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/PlaceholderUtils.java index 99c0d399c..005f2aaa1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/PlaceholderUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/PlaceholderUtils.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.UUID; /** - * * @author Rsl1122 */ public class PlaceholderUtils { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java index f3955d49b..524b7e243 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java @@ -25,7 +25,6 @@ import java.util.*; import java.util.stream.Collectors; /** - * * @author Rsl1122 */ public class Analysis { @@ -46,7 +45,7 @@ public class Analysis { /** * Analyzes the data of all offline players on the server. - * + *

* First retrieves all offline players and checks those that are in the * database. Then Runs a new Analysis Task Asynchronously. Saves AnalysisData * to the provided Cache. Saves all UserData to InspectCache for 15 minutes. @@ -75,8 +74,8 @@ public class Analysis { * Caches analyzed data of db to the provided cache analysisCache. * * @param analysisCache Cache that will contain AnalysisData result of this - * method. - * @param db Database which data will be analyzed. + * method. + * @param db Database which data will be analyzed. * @return Whether or not analysis was successful. */ public boolean analyze(AnalysisCacheHandler analysisCache, Database db) { @@ -105,7 +104,6 @@ public class Analysis { } /** - * * @param rawData * @param tpsData * @param analysisCache @@ -174,10 +172,10 @@ public class Analysis { .filter(p -> !p.getAnalysisTypes().isEmpty()) .collect(Collectors.toList()); final AnalysisType[] totalTypes = new AnalysisType[]{ - AnalysisType.INT_TOTAL, AnalysisType.LONG_TOTAL, AnalysisType.LONG_TIME_MS_TOTAL, AnalysisType.DOUBLE_TOTAL + AnalysisType.INT_TOTAL, AnalysisType.LONG_TOTAL, AnalysisType.LONG_TIME_MS_TOTAL, AnalysisType.DOUBLE_TOTAL }; final AnalysisType[] avgTypes = new AnalysisType[]{ - AnalysisType.INT_AVG, AnalysisType.LONG_AVG, AnalysisType.LONG_TIME_MS_AVG, AnalysisType.LONG_EPOCH_MS_MINUS_NOW_AVG, AnalysisType.DOUBLE_AVG + AnalysisType.INT_AVG, AnalysisType.LONG_AVG, AnalysisType.LONG_TIME_MS_AVG, AnalysisType.LONG_EPOCH_MS_MINUS_NOW_AVG, AnalysisType.DOUBLE_AVG }; final AnalysisType bool = AnalysisType.BOOLEAN_PERCENTAGE; final AnalysisType boolTot = AnalysisType.BOOLEAN_TOTAL; @@ -222,7 +220,6 @@ public class Analysis { } /** - * * @return */ public boolean isAnalysisBeingRun() { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/AnalysisUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/AnalysisUtils.java index b745e775b..84c166c86 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/AnalysisUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/AnalysisUtils.java @@ -14,13 +14,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; /** - * * @author Rsl1122 */ public class AnalysisUtils { /** - * * @param now * @param lastPlayed * @param playTime @@ -44,7 +42,6 @@ public class AnalysisUtils { } /** - * * @param registered * @param scale * @param now @@ -63,7 +60,6 @@ public class AnalysisUtils { } /** - * * @param data * @return */ @@ -76,7 +72,6 @@ public class AnalysisUtils { } /** - * * @param analysisType * @param source * @param uuids @@ -118,7 +113,6 @@ public class AnalysisUtils { } /** - * * @param analysisType * @param source * @param uuids @@ -157,7 +151,6 @@ public class AnalysisUtils { } /** - * * @param analysisType * @param source * @param uuids @@ -179,7 +172,6 @@ public class AnalysisUtils { } /** - * * @param analysisType * @param source * @param uuids @@ -208,7 +200,6 @@ public class AnalysisUtils { } /** - * * @param sessions * @param scale * @return @@ -230,7 +221,6 @@ public class AnalysisUtils { } /** - * * @param sessions * @param scale * @return @@ -263,7 +253,6 @@ public class AnalysisUtils { } /** - * * @param sessionStarts * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/DouglasPeckerAlgorithm.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/DouglasPeckerAlgorithm.java index 97d825d74..ae1de46bd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/DouglasPeckerAlgorithm.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/DouglasPeckerAlgorithm.java @@ -22,7 +22,7 @@ public class DouglasPeckerAlgorithm { } int size = points.size(); final int lastIndex = size - 1; - final Point start = points.get(0); + final Point start = points.get(0); final Point end = points.get(lastIndex); // Max distance and it's index. @@ -52,5 +52,5 @@ public class DouglasPeckerAlgorithm { private static double perpendicularDistance(Point point, Line line) { return line.getPerpendicularDistance(point); - } + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/ExportUtility.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/ExportUtility.java index 8af43a2a4..2a71b03e8 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/ExportUtility.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/ExportUtility.java @@ -17,14 +17,12 @@ import java.util.Collections; import java.util.List; /** - * * @author Rsl1122 * @since 3.4.0 */ public class ExportUtility { /** - * * @return */ public static File getFolder() { @@ -46,7 +44,6 @@ public class ExportUtility { } /** - * * @param plugin * @param analysisData * @param rawData @@ -74,7 +71,6 @@ public class ExportUtility { } /** - * * @param folder * @return */ @@ -85,7 +81,6 @@ public class ExportUtility { } /** - * * @param userData * @param playersFolder * @throws FileNotFoundException @@ -105,7 +100,6 @@ public class ExportUtility { } /** - * * @param analysisData * @param serverFolder * @throws FileNotFoundException diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Line.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Line.java index 5da917a21..8e0ee19b2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Line.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Line.java @@ -6,7 +6,6 @@ package main.java.com.djrapitops.plan.utilities.analysis; /** - * * @author ristolah */ public class Line { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/MathUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/MathUtils.java index 019ab5bdb..340da0c70 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/MathUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/MathUtils.java @@ -11,6 +11,9 @@ import java.util.stream.Stream; */ public class MathUtils { + private static final DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(Locale.ENGLISH); + private static final DecimalFormat decimalFormat = new DecimalFormat("#.##", decimalFormatSymbols); + /** * Gets the average of a Stream of Integers. * If there are no components in the Stream, it will return 0. @@ -168,9 +171,6 @@ public class MathUtils { return biggest.isPresent() ? biggest.getAsLong() : 1; } - private static final DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(Locale.ENGLISH); - private static final DecimalFormat decimalFormat = new DecimalFormat("#.##", decimalFormatSymbols); - /** * Rounds the double to a double with two digits at the end. * Output: #.## diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/HandlingInfoTimeComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/HandlingInfoTimeComparator.java index 0db4b3601..a331d60df 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/HandlingInfoTimeComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/HandlingInfoTimeComparator.java @@ -10,7 +10,6 @@ import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; import java.util.Comparator; /** - * * @author Rsl1122 */ public class HandlingInfoTimeComparator implements Comparator { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/MapComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/MapComparator.java index 69b3d3db5..f1eba4c7c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/MapComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/MapComparator.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; /** - * * @author Rsl1122 */ public class MapComparator { @@ -26,7 +25,6 @@ public class MapComparator { } /** - * * @param hashMap * @return */ diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/PointComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/PointComparator.java index 4b597a9f1..0e6e7fb58 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/PointComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/PointComparator.java @@ -5,19 +5,19 @@ */ package main.java.com.djrapitops.plan.utilities.comparators; -import java.util.Comparator; import main.java.com.djrapitops.plan.utilities.analysis.Point; +import java.util.Comparator; + /** - * * @author Rsl1122 * @since 3.5.2 */ -public class PointComparator implements Comparator{ +public class PointComparator implements Comparator { @Override public int compare(Point o1, Point o2) { return Double.compare(o1.getX(), o2.getX()); } - + } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/SessionDataComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/SessionDataComparator.java index f3fb389c5..ce6223ca9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/SessionDataComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/SessionDataComparator.java @@ -5,7 +5,6 @@ import main.java.com.djrapitops.plan.data.SessionData; import java.util.Comparator; /** - * * @author Rsl1122 */ public class SessionDataComparator implements Comparator { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/TPSComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/TPSComparator.java index 54f556735..35f6604d3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/TPSComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/TPSComparator.java @@ -1,10 +1,10 @@ package main.java.com.djrapitops.plan.utilities.comparators; -import java.util.Comparator; import main.java.com.djrapitops.plan.data.TPS; +import java.util.Comparator; + /** - * * @author Rsl1122 * @since 3.5.0 */ diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataLastPlayedComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataLastPlayedComparator.java index 6f7a1cb31..51e6b38df 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataLastPlayedComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataLastPlayedComparator.java @@ -5,11 +5,11 @@ */ package main.java.com.djrapitops.plan.utilities.comparators; -import java.util.Comparator; import main.java.com.djrapitops.plan.data.UserData; +import java.util.Comparator; + /** - * * @author Risto */ public class UserDataLastPlayedComparator implements Comparator { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataNameComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataNameComparator.java index c3596d9ed..90e9ecdac 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataNameComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/UserDataNameComparator.java @@ -5,11 +5,11 @@ */ package main.java.com.djrapitops.plan.utilities.comparators; -import java.util.Comparator; import main.java.com.djrapitops.plan.data.UserData; +import java.util.Comparator; + /** - * * @author Risto */ public class UserDataNameComparator implements Comparator { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/WebUserComparator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/WebUserComparator.java index 018139554..e1bd3281d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/WebUserComparator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/comparators/WebUserComparator.java @@ -1,8 +1,9 @@ package main.java.com.djrapitops.plan.utilities.comparators; -import java.util.Comparator; import main.java.com.djrapitops.plan.data.WebUser; +import java.util.Comparator; + /** * Orders WebUsers in descending order by permission level. * diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/Metrics.java b/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/Metrics.java index 43ee473f8..028ed39cf 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/Metrics.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/Metrics.java @@ -24,11 +24,20 @@ import java.util.zip.GZIPOutputStream; /** * bStats collects some data for plugin authors. - * + *

* Check out https://bStats.org/ to learn more about bStats! */ public class Metrics { + // The version of this bStats class + public static final int B_STATS_VERSION = 1; + // The url to which the data is sent + private static final String URL = "https://bStats.org/submitData/bukkit"; + // Should failed requests be logged? + private static boolean logFailedRequests; + // The uuid of the server + private static String serverUUID; + static { // You can use the property to disable the check in your test environment if (System.getProperty("bstats.relocatecheck") == null || !System.getProperty("bstats.relocatecheck").equals("false")) { @@ -43,18 +52,6 @@ public class Metrics { } } - // The version of this bStats class - public static final int B_STATS_VERSION = 1; - - // The url to which the data is sent - private static final String URL = "https://bStats.org/submitData/bukkit"; - - // Should failed requests be logged? - private static boolean logFailedRequests; - - // The uuid of the server - private static String serverUUID; - // The plugin private final JavaPlugin plugin; @@ -96,7 +93,8 @@ public class Metrics { ).copyDefaults(true); try { config.save(configFile); - } catch (IOException ignored) { } + } catch (IOException ignored) { + } } // Load the data @@ -110,7 +108,8 @@ public class Metrics { service.getField("B_STATS_VERSION"); // Our identifier :) found = true; // We aren't the first break; - } catch (NoSuchFieldException ignored) { } + } catch (NoSuchFieldException ignored) { + } } // Register our service Bukkit.getServicesManager().register(Metrics.class, this, plugin, ServicePriority.Normal); @@ -121,6 +120,61 @@ public class Metrics { } } + /** + * Sends the data to the bStats server. + * + * @param data The data to send. + * @throws Exception If the request failed. + */ + private static void sendData(JSONObject data) throws Exception { + if (data == null) { + throw new IllegalArgumentException("Data cannot be null!"); + } + if (Bukkit.isPrimaryThread()) { + throw new IllegalAccessException("This method must not be called from the main thread!"); + } + HttpsURLConnection connection = (HttpsURLConnection) new URL(URL).openConnection(); + + // Compress the data to save bandwidth + byte[] compressedData = compress(data.toString()); + + // Add headers + connection.setRequestMethod("POST"); + connection.addRequestProperty("Accept", "application/json"); + connection.addRequestProperty("Connection", "close"); + connection.addRequestProperty("Content-Encoding", "gzip"); // We gzip our request + connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length)); + connection.setRequestProperty("Content-Type", "application/json"); // We send our data in JSON format + connection.setRequestProperty("User-Agent", "MC-Server/" + B_STATS_VERSION); + + // Send data + connection.setDoOutput(true); + DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); + outputStream.write(compressedData); + outputStream.flush(); + outputStream.close(); + + connection.getInputStream().close(); // We don't care about the response - Just send our data :) + } + + /** + * Gzips the given String. + * + * @param str The string to gzip. + * @return The gzipped String. + * @throws IOException If the compression failed. + */ + private static byte[] compress(final String str) throws IOException { + if (str == null) { + return null; + } + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + GZIPOutputStream gzip = new GZIPOutputStream(outputStream); + gzip.write(str.getBytes("UTF-8")); + gzip.close(); + return outputStream.toByteArray(); + } + /** * Adds a custom chart. * @@ -149,7 +203,7 @@ public class Metrics { // Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;) Bukkit.getScheduler().runTask(plugin, () -> submitData()); } - }, 1000*60*5, 1000*60*30); + }, 1000 * 60 * 5, 1000 * 60 * 30); // Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start // WARNING: Changing the frequency has no effect but your plugin WILL be blocked/deleted! // WARNING: Just don't do it! @@ -244,9 +298,11 @@ public class Metrics { for (RegisteredServiceProvider provider : Bukkit.getServicesManager().getRegistrations(service)) { try { pluginData.add(provider.getService().getMethod("getPluginData").invoke(provider.getProvider())); - } catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { } + } catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { + } } - } catch (NoSuchFieldException ignored) { } + } catch (NoSuchFieldException ignored) { + } } data.put("plugins", pluginData); @@ -265,61 +321,6 @@ public class Metrics { }).start(); } - /** - * Sends the data to the bStats server. - * - * @param data The data to send. - * @throws Exception If the request failed. - */ - private static void sendData(JSONObject data) throws Exception { - if (data == null) { - throw new IllegalArgumentException("Data cannot be null!"); - } - if (Bukkit.isPrimaryThread()) { - throw new IllegalAccessException("This method must not be called from the main thread!"); - } - HttpsURLConnection connection = (HttpsURLConnection) new URL(URL).openConnection(); - - // Compress the data to save bandwidth - byte[] compressedData = compress(data.toString()); - - // Add headers - connection.setRequestMethod("POST"); - connection.addRequestProperty("Accept", "application/json"); - connection.addRequestProperty("Connection", "close"); - connection.addRequestProperty("Content-Encoding", "gzip"); // We gzip our request - connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length)); - connection.setRequestProperty("Content-Type", "application/json"); // We send our data in JSON format - connection.setRequestProperty("User-Agent", "MC-Server/" + B_STATS_VERSION); - - // Send data - connection.setDoOutput(true); - DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); - outputStream.write(compressedData); - outputStream.flush(); - outputStream.close(); - - connection.getInputStream().close(); // We don't care about the response - Just send our data :) - } - - /** - * Gzips the given String. - * - * @param str The string to gzip. - * @return The gzipped String. - * @throws IOException If the compression failed. - */ - private static byte[] compress(final String str) throws IOException { - if (str == null) { - return null; - } - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - GZIPOutputStream gzip = new GZIPOutputStream(outputStream); - gzip.write(str.getBytes("UTF-8")); - gzip.close(); - return outputStream.toByteArray(); - } - /** * Represents a custom chart. */ @@ -373,7 +374,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public SimplePie(String chartId, Callable callable) { @@ -404,7 +405,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public AdvancedPie(String chartId, Callable> callable) { @@ -448,7 +449,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public DrilldownPie(String chartId, Callable>> callable) { @@ -497,7 +498,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public SingleLineChart(String chartId, Callable callable) { @@ -529,7 +530,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public MultiLineChart(String chartId, Callable> callable) { @@ -574,7 +575,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public SimpleBarChart(String chartId, Callable> callable) { @@ -612,7 +613,7 @@ public class Metrics { /** * Class constructor. * - * @param chartId The id of the chart. + * @param chartId The id of the chart. * @param callable The callable which is used to request the chart data. */ public AdvancedBarChart(String chartId, Callable> callable) { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java b/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java index 4c651939d..e00e8324f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/uuid/UUIDUtility.java @@ -14,13 +14,11 @@ import java.sql.SQLException; import java.util.UUID; /** - * * @author Rsl1122 */ public class UUIDUtility { /** - * * @param playername * @return */ @@ -33,7 +31,6 @@ public class UUIDUtility { } /** - * * @param playername * @param db * @return diff --git a/Plan/src/main/resources/analysis.html b/Plan/src/main/resources/analysis.html index 06f435d1f..a9c5bc4de 100644 --- a/Plan/src/main/resources/analysis.html +++ b/Plan/src/main/resources/analysis.html @@ -9,274 +9,319 @@ @@ -832,835 +877,967 @@ - - - - - - - + + + + + + + diff --git a/Plan/src/main/resources/player.html b/Plan/src/main/resources/player.html index e84a71481..eeb7aa3fe 100644 --- a/Plan/src/main/resources/player.html +++ b/Plan/src/main/resources/player.html @@ -7,313 +7,370 @@ @@ -558,19 +615,28 @@ @@ -733,9 +688,6 @@ -

- -
@@ -760,10 +712,6 @@
-
- -
-

If CPU Graph displays '-1' CPU usage is not available for this platform.

@@ -877,967 +825,710 @@
- - - - - - - + + + + + diff --git a/Plan/src/main/resources/player.html b/Plan/src/main/resources/player.html index eeb7aa3fe..0e4edc5c7 100644 --- a/Plan/src/main/resources/player.html +++ b/Plan/src/main/resources/player.html @@ -7,370 +7,313 @@ @@ -615,28 +558,19 @@ @@ -825,50 +825,50 @@ - - - - - - + + + + + + - \ No newline at end of file + \ No newline at end of file From 7486030b58200c9191f83eb38d4716ef0d3fa6d0 Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Thu, 27 Jul 2017 00:27:02 +0200 Subject: [PATCH 13/14] Some typo fixes Adds the pie chart "Server Type", needs support from Rsl --- .../main/java/com/djrapitops/plan/Phrase.java | 4 ++-- .../plan/utilities/metrics/BStats.java | 17 ++++------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/Phrase.java b/Plan/src/main/java/com/djrapitops/plan/Phrase.java index 6aefcf71e..5f2d44d1b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/Phrase.java +++ b/Plan/src/main/java/com/djrapitops/plan/Phrase.java @@ -45,7 +45,7 @@ public enum Phrase { CACHE_GETTASK_DISABLED("Attempted to schedule data grab after task was shut down."), CACHE_CLEARTASK_DISABLED("Attempted to schedule data for clear after task was shut down."), // - VERSION_NEW_AVAILABLE("New Version (" + REPLACE0 + ") is availible at https://www.spigotmc.org/resources/plan-player-analytics.32536/"), + VERSION_NEW_AVAILABLE("New Version (" + REPLACE0 + ") is available at https://www.spigotmc.org/resources/plan-player-analytics.32536/"), VERSION_LATEST("You're running the latest version"), VERSION_CHECK_ERROR("Failed to compare versions."), VERSION_FAIL("Failed to get newest version number."), @@ -83,7 +83,7 @@ public enum Phrase { ERROR_CONSOLE_PLAYER("This point of code should not be accessable on console. Inform author: " + REPLACE0 + " Console: REPLACE1"), ERROR_NO_DATA_VIEW(ChatColor.YELLOW + "Webserver disabled but Alternative IP/PlanLite not used, no way to view data!"), ERROR_WEBSERVER_OFF_ANALYSIS(ChatColor.YELLOW + "" + PREFIX + "This command can be only used if the webserver is running on this server."), - ERROR_WEBSERVER_OFF_INSPECT(ChatColor.YELLOW + "" + PREFIX + "This command can be only used if webserver/planlite is enabled on this server."), + ERROR_WEBSERVER_OFF_INSPECT(ChatColor.YELLOW + "" + PREFIX + "This command can be only used if webserver is enabled on this server."), ERROR_LOGGED("Caught " + REPLACE0 + ". It has been logged to the Errors.txt"), ERROR_SESSIONDATA_INITIALIZATION("Player's session was initialized in a wrong way! (" + REPLACE0 + ")"), ERROR_ANALYSIS_FETCH_FAIL("Failed to fetch data for Analysis, Exception occurred."), diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java b/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java index 8505ad550..8dbc53670 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/metrics/BStats.java @@ -30,6 +30,7 @@ public class BStats { boolean gatherGMTimes = Settings.GATHERGMTIMES.isTrue(); boolean gatherCommands = Settings.GATHERCOMMANDS.isTrue(); + addEnabledDisabledPie("webserver_enabled", webserver); addEnabledDisabledPie("analysis_enable_refresh", analysisRefreshEnable); addEnabledDisabledPie("analysis_auto_refresh", analysisAutoRefresh); @@ -39,20 +40,10 @@ public class BStats { addEnabledDisabledPie("gather_gmtimes", gatherGMTimes); addEnabledDisabledPie("gather_commands", gatherCommands); - String databaseType = Settings.DB_TYPE.toString().toLowerCase(); - - switch (databaseType) { - case "mysql": - databaseType = "MySQL"; - break; - case "sqlite": - databaseType = "SQLite"; - break; - default: - databaseType = "No Database"; - break; - } + String serverType = plugin.getDB().getName(); + String databaseType = plugin.getDB().getName(); + addStringSettingPie("server_type", serverType); addStringSettingPie("database_type", databaseType); } From 0359faf694239dad582684045e055beb90c2488c Mon Sep 17 00:00:00 2001 From: Fuzzlemann Date: Thu, 27 Jul 2017 00:41:24 +0200 Subject: [PATCH 14/14] Adds recognition as Paper, when the server name is TacoSpigot (A fork of Paper) --- .../main/java/com/djrapitops/plan/ServerVariableHolder.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/ServerVariableHolder.java b/Plan/src/main/java/com/djrapitops/plan/ServerVariableHolder.java index 785e2ce87..f7bbbb6e1 100644 --- a/Plan/src/main/java/com/djrapitops/plan/ServerVariableHolder.java +++ b/Plan/src/main/java/com/djrapitops/plan/ServerVariableHolder.java @@ -23,7 +23,9 @@ public class ServerVariableHolder { public ServerVariableHolder(Server server) { maxPlayers = server.getMaxPlayers(); ip = server.getIp(); - usingPaper = server.getName().equals("Paper"); + + String serverName = server.getName(); + usingPaper = serverName.equals("Paper") || serverName.equals("TacoSpigot"); } /**