diff --git a/Plan/build.gradle b/Plan/build.gradle index 0c2381b11..190abad8a 100644 --- a/Plan/build.gradle +++ b/Plan/build.gradle @@ -5,14 +5,14 @@ plugins { id "org.sonarqube" version "2.7" id "net.ltgt.apt" version "0.21" id "net.ltgt.apt-idea" version "0.21" - id "com.github.johnrengelman.shadow" version "5.0.0" + id "com.github.johnrengelman.shadow" version "5.1.0" } allprojects { wrapper.gradleVersion = "5.0" group "com.djrapitops" - version "4.8.6" + version "4.8.7" test { useJUnitPlatform() @@ -47,7 +47,7 @@ subprojects { ext.daggerCompilerVersion = "2.23.2" ext.abstractPluginFrameworkVersion = "3.4.1" - ext.planPluginBridgeVersion = "4.8.2-R0.5" + ext.planPluginBridgeVersion = "4.8.7-R0.1" ext.bukkitVersion = "1.12.2-R0.1-SNAPSHOT" ext.spigotVersion = "1.12.2-R0.1-SNAPSHOT" @@ -58,10 +58,11 @@ subprojects { ext.redisBungeeVersion = "0.3.8-SNAPSHOT" ext.httpClientVersion = "4.5.9" - ext.commonsTextVersion = "1.6" + ext.commonsTextVersion = "1.7" ext.htmlCompressorVersion = "1.5.2" ext.caffeineVersion = "2.7.0" ext.h2Version = "1.4.199" + ext.mysqlVersion = "8.0.16" ext.hikariVersion = "3.3.1" ext.slf4jVersion = "1.7.26" ext.geoIpVersion = "2.12.0" @@ -103,18 +104,18 @@ subprojects { testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerCompilerVersion" // Test Tooling Dependencies - testCompile "org.junit.jupiter:junit-jupiter-engine:5.4.2" // JUnit 5 - testCompile "org.junit.platform:junit-platform-runner:1.4.2" // JUnit 4 runner for JUnit 5 tests - testCompile "org.junit.vintage:junit-vintage-engine:5.4.2" // JUnit 4 compatibility for JUnit 5 - testCompile "org.junit.jupiter:junit-jupiter-params:5.4.2" // JUnit 5, parameterized tests - testCompile "org.mockito:mockito-core:2.28.2" // Mockito Core - testCompile "org.mockito:mockito-junit-jupiter:2.28.2" // Mockito JUnit 5 Extension + testCompile "org.junit.jupiter:junit-jupiter-engine:5.5.0" // JUnit 5 + testCompile "org.junit.platform:junit-platform-runner:1.5.0" // JUnit 4 runner for JUnit 5 tests + testCompile "org.junit.vintage:junit-vintage-engine:5.5.0" // JUnit 4 compatibility for JUnit 5 + testCompile "org.junit.jupiter:junit-jupiter-params:5.5.0" // JUnit 5, parameterized tests + testCompile "org.mockito:mockito-core:3.0.0" // Mockito Core + testCompile "org.mockito:mockito-junit-jupiter:3.0.0" // Mockito JUnit 5 Extension testCompile "org.seleniumhq.selenium:selenium-java:3.141.59" // Selenium (Browser tests) testCompile "com.jayway.awaitility:awaitility:1.7.0" // Awaitility (Concurrent wait conditions) // Testing dependencies required by Plan - testCompile "org.xerial:sqlite-jdbc:3.27.2.1" // SQLite - testCompile "mysql:mysql-connector-java:8.0.16" // MySQL + testCompile "org.xerial:sqlite-jdbc:3.28.0" // SQLite + testCompile "mysql:mysql-connector-java:$mysqlVersion" // MySQL } configurations { diff --git a/Plan/common/build.gradle b/Plan/common/build.gradle index d0c32da94..aa5479f81 100644 --- a/Plan/common/build.gradle +++ b/Plan/common/build.gradle @@ -8,6 +8,7 @@ dependencies { compile "com.googlecode.htmlcompressor:htmlcompressor:$htmlCompressorVersion" compile "com.github.ben-manes.caffeine:caffeine:$caffeineVersion" compile "com.h2database:h2:$h2Version" + compile "mysql:mysql-connector-java:$mysqlVersion" compile "com.zaxxer:HikariCP:$hikariVersion" compile "org.slf4j:slf4j-nop:$slf4jVersion" compile "org.slf4j:slf4j-api:$slf4jVersion" diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java index 07adfd4f2..d48de1777 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/InfoCommand.java @@ -80,7 +80,7 @@ public class InfoCommand extends CommandNode { locale.getString(CommandLang.INFO_VERSION, plugin.getVersion()), locale.getString(CommandLang.INFO_UPDATE, updateAvailable), locale.getString(CommandLang.INFO_DATABASE, database.getType().getName() + " (" + database.getState().name() + ")"), - locale.getString(CommandLang.INFO_BUNGEE_CONNECTION, connectedToBungee), + locale.getString(CommandLang.INFO_PROXY_CONNECTION, connectedToBungee), "", ">" }; diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java index d1f47b080..15ad88944 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java @@ -16,6 +16,7 @@ */ package com.djrapitops.plan.command.commands; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.WebUser; import com.djrapitops.plan.db.Database; import com.djrapitops.plan.db.access.queries.objects.WebUserQueries; @@ -41,6 +42,7 @@ import com.djrapitops.plugin.utilities.Verify; import javax.inject.Inject; import javax.inject.Singleton; import java.util.Arrays; +import java.util.concurrent.ExecutionException; /** * Command for registering web users. @@ -164,12 +166,15 @@ public class RegisterCommand extends CommandNode { sender.sendMessage(locale.getString(CommandLang.FAIL_WEB_USER_EXISTS)); return; } - database.executeTransaction(new RegisterWebUserTransaction(webUser)); + database.executeTransaction(new RegisterWebUserTransaction(webUser)) + .get(); // Wait for completion sender.sendMessage(locale.getString(CommandLang.WEB_USER_REGISTER_SUCCESS, userName)); sendLink(sender); logger.info(locale.getString(CommandLang.WEB_USER_REGISTER_NOTIFY, userName, webUser.getPermLevel())); - } catch (Exception e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (DBOpException | ExecutionException e) { errorHandler.log(L.WARN, this.getClass(), e); } }); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java index f1896086b..9c7ff8663 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java @@ -39,6 +39,7 @@ import com.djrapitops.plugin.utilities.Verify; import javax.inject.Inject; import javax.inject.Singleton; import java.util.Arrays; +import java.util.concurrent.ExecutionException; /** * This manage SubCommand is used to clear a database of all data. @@ -101,11 +102,12 @@ public class ManageClearCommand extends CommandNode { processing.submitCritical(() -> { try { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); - - database.executeTransaction(new RemoveEverythingTransaction()); - + database.executeTransaction(new RemoveEverythingTransaction()) + .get(); // Wait for completion sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); - } catch (DBOpException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (DBOpException | ExecutionException e) { sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); errorHandler.log(L.ERROR, this.getClass(), e); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java index c82c653b8..bed68b24f 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageConDebugCommand.java @@ -81,7 +81,8 @@ public class ManageConDebugCommand extends CommandNode { this.webServer = webServer; this.dbSystem = dbSystem; - setShortHelp(locale.getString(serverInfo.getServer().isProxy() ? CmdHelpLang.CON : CmdHelpLang.MANAGE_CON)); + boolean isProxy = serverInfo.getServer() != null && serverInfo.getServer().isProxy(); + setShortHelp(locale.getString(isProxy ? CmdHelpLang.CON : CmdHelpLang.MANAGE_CON)); setInDepthHelp(locale.getArray(DeepHelpLang.MANAGE_CON)); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java index 6401e49ee..48c5e820d 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java @@ -41,6 +41,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import java.util.Arrays; import java.util.UUID; +import java.util.concurrent.ExecutionException; /** * This manage subcommand is used to remove a single player's data from the @@ -119,11 +120,12 @@ public class ManageRemoveCommand extends CommandNode { } sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); - - db.executeTransaction(new RemovePlayerTransaction(playerUUID)); - + db.executeTransaction(new RemovePlayerTransaction(playerUUID)) + .get(); // Wait for completion sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); - } catch (DBOpException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (DBOpException | ExecutionException e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java index bd3bba1e0..119ad4c8b 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java @@ -91,7 +91,9 @@ public class WebDeleteCommand extends CommandNode { sender.sendMessage("§c[Plan] User Doesn't exist."); return; } - db.executeTransaction(new RemoveWebUserTransaction(user)); + sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); + db.executeTransaction(new RemoveWebUserTransaction(user)) + .get(); // Wait for completion sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/MySQLDB.java b/Plan/common/src/main/java/com/djrapitops/plan/db/MySQLDB.java index 8445b8534..6d6d17474 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/MySQLDB.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/MySQLDB.java @@ -24,6 +24,7 @@ import com.djrapitops.plan.system.locale.Locale; import com.djrapitops.plan.system.locale.lang.PluginLang; import com.djrapitops.plan.system.settings.config.PlanConfig; import com.djrapitops.plan.system.settings.paths.DatabaseSettings; +import com.djrapitops.plugin.api.Check; import com.djrapitops.plugin.benchmarking.Timings; import com.djrapitops.plugin.logging.L; import com.djrapitops.plugin.logging.console.PluginLogger; @@ -75,12 +76,22 @@ public class MySQLDB extends SQLDB { return DBType.MYSQL; } + private void loadMySQLDriver() { + try { + Class.forName("com.mysql.cj.jdbc.Driver"); + } catch (ClassNotFoundException e) { + errorHandler.log(L.CRITICAL, this.getClass(), e); + } + } + /** * Setups the {@link HikariDataSource} */ @Override public void setupDataSource() { try { + if (Check.isVelocityAvailable()) loadMySQLDriver(); + HikariConfig hikariConfig = new HikariConfig(); String host = config.get(DatabaseSettings.MYSQL_HOST); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/LangCode.java b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/LangCode.java index 9d44f0037..77b127077 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/LangCode.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/LangCode.java @@ -30,7 +30,6 @@ public enum LangCode { FI("Finnish", "Rsl1122"), FR("French", "CyanTech & Aurelien"), JA("Japanese", "yukieji"), - IT("Italian", "- (Outdated, using English)"), TR("Turkish", "TDJisvan"), PT_BR("Portuguese (Brazil)", "jvmuller"); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CmdHelpLang.java b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CmdHelpLang.java index 10ff9c657..52291faef 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CmdHelpLang.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CmdHelpLang.java @@ -37,7 +37,7 @@ public enum CmdHelpLang implements Lang { WEB("Command Help - /plan webuser", "Manage Web Users"), DEV("Command Help - /plan dev", "Development mode command"), SETUP("Command Help - /planbungee setup", "Toggle set-up mode"), - CON("Command Help - /planbungee con", "Debug Bungee-Server connections"), + CON("Command Help - /planbungee con", "Debug Proxy-Server connections"), DISABLE("Command Help - /planbungee disable", "Disable the plugin temporarily"), MANAGE_MOVE("Command Help - /plan manage move", "Move data between Databases"), @@ -46,11 +46,11 @@ public enum CmdHelpLang implements Lang { MANAGE_REMOVE("Command Help - /plan manage remove", "Remove Player's data"), MANAGE_HOTSWAP("Command Help - /plan manage hotswap", "Change Database quickly"), MANAGE_CLEAR("Command Help - /plan manage clear", "Clear a Database"), - MANAGE_CON("Command Help - /plan manage con", "Debug Server-Bungee connections"), + MANAGE_CON("Command Help - /plan manage con", "Debug Server-Proxy connections"), MANAGE_IMPORT("Command Help - /plan manage import", "Import data from elsewhere"), MANAGE_EXPORT("Command Help - /plan manage export", "Trigger export manually"), MANAGE_DISABLE("Command Help - /plan manage disable", "Disable a feature temporarily"), - MANAGE_SETUP("Command Help - /plan manage setup", "Set-up Server-Bungee connection"), + MANAGE_SETUP("Command Help - /plan manage setup", "Set-up Server-Proxy connection"), WEB_LEVEL("Command Help - /plan web level", "Information about permission levels"), WEB_LIST("Command Help - /plan web list", "List Web Users"), diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CommandLang.java b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CommandLang.java index 7395f4471..52a1f29b3 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CommandLang.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/CommandLang.java @@ -43,14 +43,14 @@ public enum CommandLang implements Lang { WEB_PERMISSION_LEVELS("Cmd Web - Permission Levels", ">\\§70: Access all pages\\§71: Access '/players' and all player pages\\§72: Access player page with the same username as the webuser\\§73+: No permissions"), CONNECT_SUCCESS("Cmd Setup - Success", "§aConnection successful, Plan may restart in a few seconds.."), - CONNECT_FORBIDDEN("Cmd Setup - Forbidden", "§eConnection succeeded, but Bungee has set-up mode disabled - use '/planbungee setup' to enable it."), - CONNECT_BAD_REQUEST("Cmd Setup - Bad Request", "§eConnection succeeded, but Receiving server was not a Bungee server. Use Bungee address instead."), + CONNECT_FORBIDDEN("Cmd Setup - Forbidden", "§eConnection succeeded, but Proxy has set-up mode disabled - use 'planbungee setup' on the proxy to enable it."), + CONNECT_BAD_REQUEST("Cmd Setup - Bad Request", "§eConnection succeeded, but Receiving server was a Bukkit or Sponge server. Use another address instead."), CONNECT_UNAUTHORIZED("Cmd Setup - Unauthorized", "§eConnection succeeded, but Receiving server didn't authorize this server. Contact Discord for support"), CONNECT_FAIL("Cmd Setup - Generic Fail", "§eConnection failed: ${0}"), CONNECT_INTERNAL_ERROR("Cmd Setup - Internal Error", "§eConnection succeeded. ${0}, check possible ErrorLog on receiving server's debug page."), - CONNECT_GATEWAY("Cmd Setup - Gateway Error", "§eConnection succeeded, but Bungee failed to connect to this server (Did current web server restart?). Use /plan m con & /planbungee con to debug."), + CONNECT_GATEWAY("Cmd Setup - Gateway Error", "§eConnection succeeded, but Proxy failed to connect to this server (Did current web server restart?). Use /plan m con & /planbungee con to debug."), CONNECT_WEBSERVER_NOT_ENABLED("Cmd Setup - WebServer not Enabled", "§cWebServer is not enabled on this server! Make sure it enables on boot!"), - CONNECT_URL_MISTAKE("Cmd Setup - Url mistake", "§cMake sure you're using the full address (Starts with http:// or https://) - Check Bungee enable log for the full address."), + CONNECT_URL_MISTAKE("Cmd Setup - Url mistake", "§cMake sure you're using the full address (Starts with http:// or https://) - Check Proxy enable log for the full address."), SETUP_ALLOWED("Cmd Setup - Allowed", "§aSet-up is now Allowed"), SETUP_FORBIDDEN("Cmd Setup - Disallowed", "§cSet-up is now Forbidden"), @@ -70,7 +70,7 @@ public enum CommandLang implements Lang { INFO_VERSION("Cmd Info - Version", " §2Version: §f${0}"), INFO_UPDATE("Cmd Info - Update", " §2Update Available: §f${0}"), INFO_DATABASE("Cmd Info - Database", " §2Active Database: §f${0}"), - INFO_BUNGEE_CONNECTION("Cmd Info - Bungee Connection", " §2Connected to Bungee: §f${0}"), + INFO_PROXY_CONNECTION("Cmd Info - Bungee Connection", " §2Connected to Proxy: §f${0}"), QINSPECT_ACTIVITY_INDEX("Cmd Qinspect - Activity Index", " §2Activity Index: §f${0} | ${1}"), QINSPECT_REGISTERED("Cmd Qinspect - Registered", " §2Registered: §f${0}"), diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/DeepHelpLang.java b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/DeepHelpLang.java index 1fb60f935..0ad3b310f 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/DeepHelpLang.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/DeepHelpLang.java @@ -24,8 +24,8 @@ package com.djrapitops.plan.system.locale.lang; public enum DeepHelpLang implements Lang { PLAN("In Depth Help - /plan ?", "> §2Main Command\\ Access to subcommands and help\\ §2/plan §fList subcommands\\ §2/plan ? §fIn depth help"), ANALYZE("In Depth Help - /plan analyze ?", "> §2Analysis Command\\ Refreshes server page and displays link to the web page."), - SETUP("In Depth Help - /planbungee setup ?", "> §2Set-up toggle Command\\ Toggles set-up mode on Bungee.\\ Safeguard against unauthorized MySQL snooping with another server."), - DISABLE("In Depth Help - /planbungee disable ?", "> §2Disable Command\\ Runs onDisable on PlanBungee.\\ Plugin can be enabled with /planbungee reload afterwards.\\ §bDoes not support swapping jar on the fly"), + SETUP("In Depth Help - /planbungee setup ?", "> §2Set-up toggle Command\\ Toggles set-up mode on Proxy.\\ Safeguard against unauthorized MySQL snooping with another server."), + DISABLE("In Depth Help - /planbungee disable ?", "> §2Disable Command\\ Runs Plan onDisable on Proxy.\\ Plugin can be enabled with /planbungee reload afterwards.\\ §bDoes not support swapping jar on the fly"), INSPECT("In Depth Help - /plan inspect ?", "> §2Inspect Command\\ Refreshes player page and displays link to the web page."), PLAYERS("In Depth Help - /plan players ?", "> §2Players Command\\ Displays link to the players page."), SERVERS("In Depth Help - /plan servers ?", "> §2Servers Command\\ Displays list of Plan servers in the Database.\\ Can be used to debug issues with database registration on a network."), diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/PluginLang.java b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/PluginLang.java index 2c71e1beb..931b80b34 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/PluginLang.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/locale/lang/PluginLang.java @@ -35,7 +35,7 @@ public enum PluginLang implements Lang { ENABLE_FAIL_DB("Enable FAIL - Database", "${0}-Database Connection failed: ${1}"), ENABLE_FAIL_WRONG_DB("Enable FAIL - Wrong Database Type", "${0} is not a supported Database"), ENABLE_FAIL_DB_PATCH("Enable FAIL - Database Patch", "Database Patching failed, plugin has to be disabled. Please report this issue"), - ENABLE_FAIL_NO_WEB_SERVER_PROXY("Enable FAIL - WebServer (Bungee)", "WebServer did not initialize!"), + ENABLE_FAIL_NO_WEB_SERVER_PROXY("Enable FAIL - WebServer (Proxy)", "WebServer did not initialize!"), ENABLE_FAIL_GEODB_WRITE("Enable FAIL - GeoDB Write", "Something went wrong saving the downloaded GeoLite2 Geolocation database"), WEB_SERVER_FAIL_PORT_BIND("WebServer FAIL - Port Bind", "WebServer was not initialized successfully. Is the port (${0}) in use?"), diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/settings/config/WorldAliasSettings.java b/Plan/common/src/main/java/com/djrapitops/plan/system/settings/config/WorldAliasSettings.java index fab64b193..794b42b59 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/settings/config/WorldAliasSettings.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/settings/config/WorldAliasSettings.java @@ -68,15 +68,6 @@ public class WorldAliasSettings { return config.get().get(DisplaySettings.WORLD_ALIASES); } - /** - * Used to get all World aliases in the config - * - * @return Map: Original name, Alias - */ - public Map getAliases() { - return getAliasSection().getStringMap(false); - } - /** * Adds a new World to the config section. *

@@ -85,7 +76,7 @@ public class WorldAliasSettings { * @param world World name */ public void addWorld(String world) { - Verify.isFalse(Verify.isEmpty(world), () -> new IllegalArgumentException("Attempted to save a world alias '" + world + "'")); + Verify.isFalse(Verify.isEmpty(world), () -> new IllegalArgumentException("Attempted to save empty world alias")); ConfigNode aliasSect = getAliasSection(); @@ -114,19 +105,18 @@ public class WorldAliasSettings { entry -> entry.getValue().getTotal() // GMTimes.getTotal )); - Map aliases = getAliases(); + ConfigNode aliases = getAliasSection(); Map playtimePerAlias = new HashMap<>(); for (Map.Entry entry : playtimePerWorld.entrySet()) { String worldName = entry.getKey(); long playtime = entry.getValue(); - if (!aliases.containsKey(worldName)) { - aliases.put(worldName, worldName); + if (!aliases.contains(worldName)) { addWorld(worldName); } - String alias = aliases.get(worldName); + String alias = aliases.getString(worldName); playtimePerAlias.put(alias, playtimePerAlias.getOrDefault(alias, 0L) + playtime); } @@ -134,7 +124,7 @@ public class WorldAliasSettings { } public Map getGMTimesPerAlias(WorldTimes worldTimes) { - Map aliases = getAliases(); + ConfigNode aliases = getAliasSection(); Map gmTimesPerAlias = new HashMap<>(); @@ -144,12 +134,11 @@ public class WorldAliasSettings { String worldName = entry.getKey(); GMTimes gmTimes = entry.getValue(); - if (!aliases.containsKey(worldName)) { - aliases.put(worldName, worldName); + if (!aliases.contains(worldName)) { addWorld(worldName); } - String alias = aliases.get(worldName); + String alias = aliases.getString(worldName); GMTimes aliasGMTimes = gmTimesPerAlias.getOrDefault(alias, new GMTimes()); for (String gm : gms) { @@ -161,13 +150,15 @@ public class WorldAliasSettings { } public String getLongestWorldPlayed(Session session) { - Map aliases = getAliases(); + ConfigNode aliases = getAliasSection(); + if (!session.supports(SessionKeys.WORLD_TIMES)) { return "No World Time Data"; } WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes()); if (!session.supports(SessionKeys.END)) { - return "Current: " + aliases.getOrDefault(worldTimes.getCurrentWorld(), "Unknown"); + String currentWorld = worldTimes.getCurrentWorld(); + return "Current: " + (aliases.contains(currentWorld) ? aliases.getString(currentWorld) : currentWorld); } Map playtimePerAlias = getPlaytimePerAlias(worldTimes); diff --git a/Plan/common/src/main/resources/assets/plan/locale/locale_DE.txt b/Plan/common/src/main/resources/assets/plan/locale/locale_DE.txt index e4959eddc..548b8a099 100644 --- a/Plan/common/src/main/resources/assets/plan/locale/locale_DE.txt +++ b/Plan/common/src/main/resources/assets/plan/locale/locale_DE.txt @@ -36,7 +36,7 @@ Cmd Qinspect - Playtime || §Spielzeit: §f${0} Cmd Qinspect - Registered || §2Registrierung: §f${0} Cmd Qinspect - Times Kicked || §2Kicks: §f${0} Cmd Setup - Allowed || §aSetupmodus wurde aktiviert. -Cmd Setup - Bad Request || §eVerbindung hergestellt. Der empfangende Server ist kein Bungeecordserver. Nutze stattdessen die Bungeecord-Adresse. +Cmd Setup - Bad Request || §eVerbindung hergestellt. Der empfangende Server ist ein Bukkit- oder Sponge-server. Nutze stattdessen die andere Adresse. Cmd Setup - Disallowed || §cSet-up wurde deaktiviert. Cmd Setup - Forbidden || §eVerbindung hergestellt aber der Bungeecordserver hat den Setupmodus nicht aktiviert. Nutze '/planbungee setup' um ihn zu aktivieren. Cmd Setup - Gateway Error || §eVerbindung hergestellt, aber der Bungeecordserver konnte sich nicht mit diesem Server verbinden (Wurde der aktuelle Server neugestartet?). Nutze /plan m con & /planbungee con zum debuggen. diff --git a/Plan/common/src/main/resources/assets/plan/locale/locale_EN.txt b/Plan/common/src/main/resources/assets/plan/locale/locale_EN.txt index 270ad2cca..58024ecce 100644 --- a/Plan/common/src/main/resources/assets/plan/locale/locale_EN.txt +++ b/Plan/common/src/main/resources/assets/plan/locale/locale_EN.txt @@ -17,7 +17,7 @@ Cmd Header - Players || > §2Players Cmd Header - Search || > §2${0} Results for §f${1}§2: Cmd Header - Servers || > §2Servers Cmd Header - Web Users || > §2${0} Web Users -Cmd Info - Bungee Connection || §2Connected to Bungee: §f${0} +Cmd Info - Bungee Connection || §2Connected to Proxy: §f${0} Cmd Info - Database || §2Active Database: §f${0} Cmd Info - Reload Complete || §aReload Complete Cmd Info - Reload Failed || §cSomething went wrong during reload of the plugin, a restart is recommended. @@ -36,15 +36,15 @@ Cmd Qinspect - Playtime || §2Playtime: §f${0} Cmd Qinspect - Registered || §2Registered: §f${0} Cmd Qinspect - Times Kicked || §2Times Kicked: §f${0} Cmd Setup - Allowed || §aSet-up is now Allowed -Cmd Setup - Bad Request || §eConnection succeeded, but Receiving server was not a Bungee server. Use Bungee address instead. +Cmd Setup - Bad Request || §eConnection succeeded, but Receiving server was a Bukkit or Sponge server. Use another address instead. Cmd Setup - Disallowed || §cSet-up is now Forbidden -Cmd Setup - Forbidden || §eConnection succeeded, but Bungee has set-up mode disabled - use '/planbungee setup' to enable it. -Cmd Setup - Gateway Error || §eConnection succeeded, but Bungee failed to connect to this server (Did current web server restart?). Use /plan m con & /planbungee con to debug. +Cmd Setup - Forbidden || §eConnection succeeded, but Proxy has set-up mode disabled - use '/planbungee setup' to enable it. +Cmd Setup - Gateway Error || §eConnection succeeded, but Proxy failed to connect to this server (Did current web server restart?). Use /plan m con & /planbungee con to debug. Cmd Setup - Generic Fail || §eConnection failed: ${0} Cmd Setup - Internal Error || §eConnection succeeded. ${0}, check possible ErrorLog on receiving server's debug page. Cmd Setup - Success || §aConnection successful, Plan may restart in a few seconds.. Cmd Setup - Unauthorized || §eConnection succeeded, but Receiving server didn't authorize this server. Contact Discord for support -Cmd Setup - Url mistake || §cMake sure you're using the full address (Starts with http:// or https://) - Check Bungee enable log for the full address. +Cmd Setup - Url mistake || §cMake sure you're using the full address (Starts with http:// or https://) - Check Proxy enable log for the full address. Cmd Setup - WebServer not Enabled || §cWebServer is not enabled on this server! Make sure it enables on boot! Cmd SUCCESS - Feature disabled || §aDisabled '${0}' temporarily until next plugin reload. Cmd SUCCESS - WebUser register || §aAdded a new user (${0}) successfully! You can view the web panel in the following link. @@ -67,14 +67,14 @@ Command Help - /plan inspect || View a Player Page Command Help - /plan manage || Manage Plan Database Command Help - /plan manage backup || Backup a Database Command Help - /plan manage clear || Clear a Database -Command Help - /plan manage con || Debug Server-Bungee connections +Command Help - /plan manage con || Debug Server-Proxy connections Command Help - /plan manage disable || Disable a feature temporarily Command Help - /plan manage hotswap || Change Database quickly Command Help - /plan manage import || Import data from elsewhere Command Help - /plan manage move || Move data between Databases Command Help - /plan manage remove || Remove Player's data Command Help - /plan manage restore || Restore a previous Backup -Command Help - /plan manage setup || Set-up Server-Bungee connection +Command Help - /plan manage setup || Set-up Server-Proxy connection Command Help - /plan network || View the Network Page Command Help - /plan players || View the Players Page Command Help - /plan qinspect || View Player info in game @@ -88,7 +88,7 @@ Command Help - /plan web delete || Delete a Web User Command Help - /plan web level || Information about permission levels Command Help - /plan web list || List Web Users Command Help - /plan webuser || Manage Web Users -Command Help - /planbungee con || Debug Bungee-Server connections +Command Help - /planbungee con || Debug Proxy-Server connections Command Help - /planbungee disable || Disable the plugin temporarily Command Help - /planbungee setup || Toggle set-up mode Database - Apply Patch || Applying Patch: ${0}.. @@ -266,7 +266,7 @@ In Depth Help - /plan manage import ? || > §2Import Subcommand\ Impo In Depth Help - /plan manage move ? || > §2Move Subcommand\ Move data from SQLite to MySQL or other way around.\ Target database is cleared before transfer. In Depth Help - /plan manage remove ? || > §2Remove Subcommand\ Remove player's data from the active database. In Depth Help - /plan manage restore ? || > §2Restore Subcommand\ Restore a previous backup SQLite database (.db file)\ You can also restore database.db from another server to MySQL.\ Target database is cleared before transfer. -In Depth Help - /plan manage setup ? || > §2Setup Subcommand\ Set-up a connection between Bungee and this server for network functionality.\ BungeeAddress can be found in the enable log on console when Plan enables on Bungee. +In Depth Help - /plan manage setup ? || > §2Setup Subcommand\ Set-up a connection between Proxy and this server for network functionality.\ BungeeAddress can be found in the enable log on console when Plan enables on Bungee. In Depth Help - /plan network ? || > §2Network Command\ Displays link to the network page.\ If not on a network, this page displays the server page. In Depth Help - /plan players ? || > §2Players Command\ Displays link to the players page. In Depth Help - /plan qinspect ? || > §2Quick Inspect Command\ Displays some information about the player in game. @@ -276,8 +276,8 @@ In Depth Help - /plan servers ? || > §2Servers Command\ Displa In Depth Help - /plan update ? || > §2Update Command\ Used to update the plugin on the next shutdown\ /plan update - Changelog link\ /plan update -u - Schedule update to happen on all network servers that are online, next time they reboot.\ /plan update cancel - Cancel scheduled update on servers that haven't rebooted yet. In Depth Help - /plan web ? || < §2Web User Manage Command.\ §2/plan web §fList subcommands\ §2/plan web ? §fIn Depth help In Depth Help - /plan web register ? || > §2Register Subcommand\ Registers a new Web User.\ Registering a user for another player requires plan.webmanage permission.\ Passwords are hashed with PBKDF2 (64,000 iterations of SHA1) using a cryptographically-random salt. -In Depth Help - /planbungee disable ? || > §2Disable Command\ Runs onDisable on PlanBungee.\ Plugin can be enabled with /planbungee reload afterwards.\ §bDoes not support swapping jar on the fly -In Depth Help - /planbungee setup ? || > §2Set-up toggle Command\ Toggles set-up mode on Bungee.\ Safeguard against unauthorized MySQL snooping with another server. +In Depth Help - /planbungee disable ? || > §2Disable Command\ Runs Plan onDisable on Proxy servers.\ Plugin can be enabled with /planbungee reload afterwards.\ §bDoes not support swapping jar on the fly +In Depth Help - /planbungee setup ? || > §2Set-up toggle Command\ Toggles set-up mode on Proxy.\ Safeguard against unauthorized MySQL snooping with another server. Manage - Confirm Overwrite || Data in ${0} will be overwritten! Manage - Confirm Removal || Data in ${0} will be removed! Manage - Fail || > §cSomething went wrong: ${0} diff --git a/Plan/common/src/main/resources/assets/plan/locale/locale_FI.txt b/Plan/common/src/main/resources/assets/plan/locale/locale_FI.txt index 50acb2c8d..873509163 100644 --- a/Plan/common/src/main/resources/assets/plan/locale/locale_FI.txt +++ b/Plan/common/src/main/resources/assets/plan/locale/locale_FI.txt @@ -36,7 +36,7 @@ Cmd Qinspect - Playtime || §2Peliaika: §f${0} Cmd Qinspect - Registered || §2Rekisteröitynyt: §f${0} Cmd Qinspect - Times Kicked || §2Potkittu Pellolle: §f${0} Cmd Setup - Allowed || §aYhteydenotto on nyt sallittu. -Cmd Setup - Bad Request || §eYhteys onnistui, mutta Vastaanottava palvelin ei ollut BungeeCord. Käytä BungeeCord:in osoitetta. +Cmd Setup - Bad Request || §eYhteys onnistui, mutta Vastaanottava palvelin oli Bukkit tai Sponge-palvelin. Käytä toista osoitetta. Cmd Setup - Disallowed || §cYhteydenotto on nyt kielletty. Cmd Setup - Forbidden || §eYhteys onnistui, mutta BungeeCord:n set-up tila oli poissa käytöstä - käytä '/planbungee setup' laittaaksesi sen päälle. Cmd Setup - Gateway Error || §eYhteys onnistui, mutta BungeeCord ei saanut yhteyttä tähän palvelimeen (Käynnistyikö Web palvelin uudelleen?). Käytä /plan m con & /planbungee con tutkiaksesi ongelmia. diff --git a/Plan/common/src/main/resources/assets/plan/locale/locale_FR.txt b/Plan/common/src/main/resources/assets/plan/locale/locale_FR.txt index 22f005147..999c093fb 100644 --- a/Plan/common/src/main/resources/assets/plan/locale/locale_FR.txt +++ b/Plan/common/src/main/resources/assets/plan/locale/locale_FR.txt @@ -36,7 +36,7 @@ Cmd Qinspect - Playtime || §2Temps de jeu : §f${0} Cmd Qinspect - Registered || §2Incrit depuis : §f${0} Cmd Qinspect - Times Kicked || §2Nombre d'éjections : §f${0} Cmd Setup - Allowed || §aLa configuration est maintenant autorisée. -Cmd Setup - Bad Request || §eLa connexion a réussi, mais le serveur de réception n'était pas un serveur Bungee. Utilisez l'adresse du Bungee à la place. +Cmd Setup - Bad Request || §eLa connexion a réussi, mais le serveur de réception n'était un serveur Bukkit ou Sponge. Utilisez une autre adresse à la place. Cmd Setup - Disallowed || §cLa configuration est maintenant interdite. Cmd Setup - Forbidden || §eConnexion réussie, mais le mode de configuration de Bungee est désactivé. Exécutez '/plan bungee setup' pour l'activer. Cmd Setup - Gateway Error || §eConnexion réussie, mais Bungee n'a pas réussi à se connecter à ce serveur (Le serveur Web actuel a-t-il redémarré ?). Exécutez '/plan m con' et '/planbungee con' pour déboguer. diff --git a/Plan/common/src/main/resources/assets/plan/locale/locale_IT.txt b/Plan/common/src/main/resources/assets/plan/locale/locale_IT.txt deleted file mode 100644 index 270ad2cca..000000000 --- a/Plan/common/src/main/resources/assets/plan/locale/locale_IT.txt +++ /dev/null @@ -1,336 +0,0 @@ -Cmd - Click Me || Click me -Cmd - Link || §2Link: §f -Cmd Disable - Disabled || §aPlan systems are now disabled. You can still use /planbungee reload to restart the plugin. -Cmd FAIL - Invalid Username || §cUser does not have an UUID. -Cmd FAIL - No Feature || §eDefine a feature to disable! (currently supports ${0}) -Cmd FAIL - No Permission || §cYou do not have the required permission. -Cmd FAIL - Require only one Argument || §cSingle Argument required ${1} -Cmd FAIL - Requires Arguments || §cArguments required (${0}) ${1} -Cmd FAIL - Unknown Username || §cUser has not been seen on this server -Cmd FAIL - WebUser does not exists || §cUser does not exists! -Cmd FAIL - WebUser exists || §cUser already exists! -Cmd Header - Analysis || > §2Analysis Results -Cmd Header - Info || > §2Player Analytics -Cmd Header - Inspect || > §2Player: §f${0} -Cmd Header - Network || > §2Network Page -Cmd Header - Players || > §2Players -Cmd Header - Search || > §2${0} Results for §f${1}§2: -Cmd Header - Servers || > §2Servers -Cmd Header - Web Users || > §2${0} Web Users -Cmd Info - Bungee Connection || §2Connected to Bungee: §f${0} -Cmd Info - Database || §2Active Database: §f${0} -Cmd Info - Reload Complete || §aReload Complete -Cmd Info - Reload Failed || §cSomething went wrong during reload of the plugin, a restart is recommended. -Cmd Info - Update || §2Update Available: §f${0} -Cmd Info - Version || §2Version: §f${0} -Cmd Notify - No WebUser || You might not have a web user, use /plan register -Cmd Notify - WebUser register || Registered new user: '${0}' Perm level: ${1} -Cmd Qinspect - Activity Index || §2Activity Index: §f${0} | ${1} -Cmd Qinspect - Deaths || §2Deaths: §f${0} -Cmd Qinspect - Geolocation || §2Logged in from: §f${0} -Cmd Qinspect - Last Seen || §2Last Seen: §f${0} -Cmd Qinspect - Longest Session || §2Longest Session: §f${0} -Cmd Qinspect - Mob Kills || §2Mob Kills: §f${0} -Cmd Qinspect - Player Kills || §2Player Kills: §f${0} -Cmd Qinspect - Playtime || §2Playtime: §f${0} -Cmd Qinspect - Registered || §2Registered: §f${0} -Cmd Qinspect - Times Kicked || §2Times Kicked: §f${0} -Cmd Setup - Allowed || §aSet-up is now Allowed -Cmd Setup - Bad Request || §eConnection succeeded, but Receiving server was not a Bungee server. Use Bungee address instead. -Cmd Setup - Disallowed || §cSet-up is now Forbidden -Cmd Setup - Forbidden || §eConnection succeeded, but Bungee has set-up mode disabled - use '/planbungee setup' to enable it. -Cmd Setup - Gateway Error || §eConnection succeeded, but Bungee failed to connect to this server (Did current web server restart?). Use /plan m con & /planbungee con to debug. -Cmd Setup - Generic Fail || §eConnection failed: ${0} -Cmd Setup - Internal Error || §eConnection succeeded. ${0}, check possible ErrorLog on receiving server's debug page. -Cmd Setup - Success || §aConnection successful, Plan may restart in a few seconds.. -Cmd Setup - Unauthorized || §eConnection succeeded, but Receiving server didn't authorize this server. Contact Discord for support -Cmd Setup - Url mistake || §cMake sure you're using the full address (Starts with http:// or https://) - Check Bungee enable log for the full address. -Cmd Setup - WebServer not Enabled || §cWebServer is not enabled on this server! Make sure it enables on boot! -Cmd SUCCESS - Feature disabled || §aDisabled '${0}' temporarily until next plugin reload. -Cmd SUCCESS - WebUser register || §aAdded a new user (${0}) successfully! You can view the web panel in the following link. -Cmd Update - Cancel Success || §aCancel operation performed. -Cmd Update - Cancelled || §cUpdate cancelled. -Cmd Update - Change log || Change Log v${0}: -Cmd Update - Fail Cacnel || §cUpdate failed on a server, cancelling update on all servers.. -Cmd Update - Fail Force Notify || §e${0} failed to update, -force specified, continuing update. -Cmd Update - Fail Not Online || §cNot all servers were online or accessible, you can still update available servers using /plan update -u -force -Cmd Update - Notify Cancel || §aYou can cancel the update on servers that haven't rebooted yet with /plan update cancel. -Cmd Update - Online Check || Checking that all servers are online.. -Cmd Update - Scheduled || §a${0} scheduled for update. -Cmd Update - Url mismatch || §cVersion download url did not start with ${0} and might not be trusted. You can download this version manually here (Direct download): -Cmd Web - Permission Levels || >\§70: Access all pages\§71: Access '/players' and all player pages\§72: Access player page with the same username as the webuser\§73+: No permissions -Command Help - /plan analyze || View the Server Page -Command Help - /plan dev || Development mode command -Command Help - /plan help || Show command list -Command Help - /plan info || Check the version of Plan -Command Help - /plan inspect || View a Player Page -Command Help - /plan manage || Manage Plan Database -Command Help - /plan manage backup || Backup a Database -Command Help - /plan manage clear || Clear a Database -Command Help - /plan manage con || Debug Server-Bungee connections -Command Help - /plan manage disable || Disable a feature temporarily -Command Help - /plan manage hotswap || Change Database quickly -Command Help - /plan manage import || Import data from elsewhere -Command Help - /plan manage move || Move data between Databases -Command Help - /plan manage remove || Remove Player's data -Command Help - /plan manage restore || Restore a previous Backup -Command Help - /plan manage setup || Set-up Server-Bungee connection -Command Help - /plan network || View the Network Page -Command Help - /plan players || View the Players Page -Command Help - /plan qinspect || View Player info in game -Command Help - /plan register || Register a Web User -Command Help - /plan reload || Restart Plan -Command Help - /plan search || Search for a player name -Command Help - /plan servers || List servers in Database -Command Help - /plan update || Get change log link or update plugin -Command Help - /plan web check || Inspect a Web User -Command Help - /plan web delete || Delete a Web User -Command Help - /plan web level || Information about permission levels -Command Help - /plan web list || List Web Users -Command Help - /plan webuser || Manage Web Users -Command Help - /planbungee con || Debug Bungee-Server connections -Command Help - /planbungee disable || Disable the plugin temporarily -Command Help - /planbungee setup || Toggle set-up mode -Database - Apply Patch || Applying Patch: ${0}.. -Database - Patches Applied || All database patches applied successfully. -Database - Patches Applied Already || All database patches already applied. -Database MySQL - Launch Options Error || Launch Options were faulty, using default (${0}) -Database Notify - Clean || Removed data of ${0} players. -Database Notify - SQLite No WAL || SQLite WAL mode not supported on this server version, using default. This may or may not affect performance. -Disable || Player Analytics Disabled. -Disable - Processing || Processing critical unprocessed tasks. (${0}) -Disable - Processing Complete || Processing complete. -Disable - WebServer || Webserver has been disabled. -Enable || Player Analytics Enabled. -Enable - Database || ${0}-database connection established. -Enable - Notify Address Confirmation || Make sure that this address points to THIS Server: ${0} -Enable - Notify Empty IP || IP in server.properties is empty & AlternativeIP is not in use. Incorrect links will be given! -Enable - Notify Geolocations disabled || Geolocation gathering is not active. (Data.Geolocations: false) -Enable - Notify Geolocations Internet Required || Plan Requires internet access on first run to download GeoLite2 Geolocation database. -Enable - Notify Webserver disabled || WebServer was not initialized. (WebServer.DisableWebServer: true) -Enable - WebServer || Webserver running on PORT ${0} (${1}) -Enable FAIL - Database || ${0}-Database Connection failed: ${1} -Enable FAIL - Database Patch || Database Patching failed, plugin has to be disabled. Please report this issue -Enable FAIL - GeoDB Write || Something went wrong saving the downloaded GeoLite2 Geolocation database -Enable FAIL - WebServer (Bungee) || WebServer did not initialize! -Enable FAIL - Wrong Database Type || ${0} is not a supported Database -HTML - ACTIVITY_INDEX || Activity Index -HTML - ALL || ALL -HTML - ALL_TIME_PEAK || All Time Peak -HTML - AVERAGE_PING || Average Ping -HTML - AVG || AVG -HTML - BANNED || Banned -HTML - BEST_PING || Best Ping -HTML - CALENDAR || CALENDAR -HTML - CALENDAR_TEXT || Calendar -HTML - CHUNKS || Chunks -HTML - COMMAND || Command -HTML - COMMNAND_USAGE || Command Usage -HTML - CONNECTION_INFORMATION || Connection Information -HTML - COUNTRY || Country -HTML - CURRENT_PLAYERBASE || Current Playerbase -HTML - DEATHS || Deaths -HTML - ENTITIES || Entities -HTML - ERROR || Authentication failed due to error -HTML - FAVORITE_SERVER || Favorite Server -HTML - GEOLOCATION || Geolocation -HTML - GEOLOCATION_TEXT || Geolocation -HTML - HEALTH_ESTIMATE || Health Estimate -HTML - INDEX_ACTIVE || Active -HTML - INDEX_INACTIVE || Inactive -HTML - INDEX_IRREGULAR || Irregular -HTML - INDEX_REGULAR || Regular -HTML - INDEX_VERY_ACTIVE || Very Active -HTML - IP_ADDRESS || IP-address -HTML - KILLED || Killed -HTML - KILLED_BY || Killed by -HTML - LAST_24_HOURS || LAST 24 HOURS -HTML - LAST_30_DAYS || LAST 30 DAYS -HTML - LAST_30_DAYS_TEXT || Last 30 Days -HTML - LAST_7_DAYS || LAST 7 DAYS -HTML - LAST_CONNECTED || Last Connected -HTML - LAST_PEAK || Last Peak -HTML - LAST_SEEN || LAST SEEN -HTML - LAST_SEEN_TEXT || Last Seen -HTML - LOADED_CHUNKS || Loaded Chunks -HTML - LOADED_ENTITIES || Loaded Entities -HTML - LOCAL_MACHINE || Local Machine -HTML - LONGEST || Longest -HTML - LOW_TPS_SPIKES || Low TPS Spikes -HTML - MOB_CAUSED_DEATHS || Mob caused Deaths -HTML - MOB_KDR || Mob KDR -HTML - MOB_KILLS || Mob Kills -HTML - MOST_RECENT_SESSIONS || Most Recent Sessions -HTML - NAME || Name -HTML - NAV_COMMAND_USAGE || Command Usage -HTML - NAV_GEOLOCATIONS || Geolocations -HTML - NAV_INFORMATION || Information -HTML - NAV_NETWORK_PLAYERS || Network Players -HTML - NAV_ONLINE_ACTIVITY || Online Activity -HTML - NAV_OVERVIEW || Overview -HTML - NAV_PERFORMANCE || Performance -HTML - NAV_PLAYERS || Players -HTML - NAV_PLUGINS || Plugins -HTML - NAV_SESSIONS || Sessions -HTML - NAV_SEVER_HEALTH || Server Health -HTML - NETWORK || Network -HTML - NETWORK_INFORMATION || NETWORK INFORMATION -HTML - NEW || NEW -HTML - NEW_CALENDAR || New: -HTML - NEW_PLAYERS_TEXT || New Players -HTML - NEW_RETENTION || New Player Retention -HTML - NEW_TEXT || New -HTML - NICKNAME || Nickname -HTML - NO_KILLS || No Kills -HTML - NO_PLAYER_CAUSED_DEATHS || No Player caused Deaths -HTML - OFFLINE || Offline -HTML - ONLINE || Online -HTML - ONLINE_ACTIVITY || ONLINE ACTIVITY -HTML - OPERATOR || Operator -HTML - OVERVIEW || OVERVIEW -HTML - PER_DAY || / Day -HTML - PLAYER_CAUSED_DEATHS || Player caused Deaths -HTML - PLAYER_KILLS || Player Kills -HTML - PLAYER_LIST || Player List -HTML - PLAYERBASE_DEVELOPMENT || Playerbase Development -HTML - PLAYERS || PLAYERS -HTML - PLAYERS_ONLINE || PLAYERS ONLINE -HTML - PLAYERS_ONLINE_TEXT || Players Online -HTML - PLAYERS_TEXT || Players -HTML - PLAYTIME || Playtime -HTML - PLEASE_WAIT || Please wait... -HTML - PREDICETED_RETENTION || Predicted Retention -HTML - PUNCH_CARD || Punchcard -HTML - PUNCHCARD || PUNCHCARD -HTML - RECENT_LOGINS || RECENT LOGINS -HTML - REGISTERED || REGISTERED -HTML - REGISTERED_TEXT || Registered -HTML - REGULAR || REGULAR -HTML - SEEN_NICKNAMES || Seen Nicknames -HTML - SERVER || Server -HTML - SERVER_ANALYSIS || Server Analysis -HTML - SERVER_HEALTH_ESTIMATE || Server Health Estimate -HTML - SERVER_INFORMATION || SERVER INFORMATION -HTML - SERVER_PREFERENCE || Server Preference -HTML - SERVERS || Servers -HTML - SESSION || Session -HTML - SESSION_ENDED || Session Ended -HTML - SESSION_LENGTH || Session Lenght -HTML - SESSION_MEDIAN || Session Median -HTML - SESSIONS || Sessions -HTML - TIME || Time -HTML - TIMES_KICKED || Times Kicked -HTML - TIMES_USED || Times Used -HTML - TOTAL_ACTIVE_TEXT || Total Active -HTML - TOTAL_AFK || Total AFK -HTML - TOTAL_PLAYERS || Total Players -HTML - TOTAL_PLAYTIME || Total Playtime -HTML - UNIQUE || UNIQUE -HTML - UNIQUE_CALENDAR || Unique: -HTML - UNIQUE_PLAYERS || UNIQUE PLAYERS -HTML - UNIQUE_PLAYERS_TEXT || Unique Players -HTML - UNIQUE_TEXT || Unique -HTML - USAGE || Usage -HTML - USED_COMMANDS || Used Commands -HTML - USER_AND_PASS_NOT_SPECIFIED || User and Password not specified -HTML - USER_DOES_NOT_EXIST || User does not exist -HTML - USER_INFORMATION || USER INFORMATION -HTML - USER_PASS_MISMATCH || User and Password did not match -HTML - WITH || With -HTML - WORLD || World -HTML - WORLD_LOAD || WORLD LOAD -HTML - WORLD_PLAYTIME || World Playtime -HTML - WORST_PING || Worst Ping -HTML ERRORS - ACCESS_DENIED_403 || Access Denied -HTML ERRORS - ANALYSIS_REFRESH || Analysis is being refreshed.. -HTML ERRORS - ANALYSIS_REFRESH_LONG || Analysis is being run, refresh the page after a few seconds.. -HTML ERRORS - AUTH_FAIL_TIPS_401 || - Ensure you have registered a user with /plan register
- Check that the username and password are correct
- Username and password are case-sensitive

If you have forgotten your password, ask a staff member to delete your old user and re-register. -HTML ERRORS - AUTHENTICATION_FAILED_401 || Authentication Failed. -HTML ERRORS - FORBIDDEN_403 || Forbidden -HTML ERRORS - NO_SERVERS_404 || No Servers online to perform the request. -HTML ERRORS - NOT_FOUND_404 || Not Found -HTML ERRORS - NOT_PLAYED_404 || Player has not played on this server. -HTML ERRORS - PAGE_NOT_FOUND_404 || Page does not exist. -HTML ERRORS - UNAUTHORIZED_401 || Unauthorized -HTML ERRORS - UNKNOWN_PAGE_404 || Make sure you're accessing a link given by a command, Examples:

/player/PlayerName
/server/ServerName

-HTML ERRORS - UUID_404 || Player UUID was not found in the database. -In Depth Help - /plan ? || > §2Main Command\ Access to subcommands and help\ §2/plan §fList subcommands\ §2/plan ? §fIn depth help -In Depth Help - /plan analyze ? || > §2Analysis Command\ Refreshes server page and displays link to the web page. -In Depth Help - /plan inspect ? || > §2Inspect Command\ Refreshes player page and displays link to the web page. -In Depth Help - /plan manage ? || > §2Manage Command\ Manage MySQL and SQLite database of Plan.\ §2/plan m §fList subcommands\ §2/plan m ? §fIn depth help -In Depth Help - /plan manage backup ? || > §2Backup Subcommand\ Creates a new SQLite database (.db file) with contents of currently active database in the Plan plugin folder. -In Depth Help - /plan manage clear ? || > §2Clear Subcommand\ Removes everything in the active database. Use with caution. -In Depth Help - /plan manage con ? || > §2Connection Debug Subcommand\ Used to debug connections in the network.\ Sends a request to each server in the database. -In Depth Help - /plan manage disable ? || > §2Disable Subcommand\ Can disable parts of the plugin until next reload.\ Accepted arguments:\ §2kickcount §fDisables kick counts in case /kickall is used on shutdown macro. -In Depth Help - /plan manage import ? || > §2Import Subcommand\ Import data from other sources.\ Accepted Arguments:\ §2offline §fBukkit player data, only register date and name. -In Depth Help - /plan manage move ? || > §2Move Subcommand\ Move data from SQLite to MySQL or other way around.\ Target database is cleared before transfer. -In Depth Help - /plan manage remove ? || > §2Remove Subcommand\ Remove player's data from the active database. -In Depth Help - /plan manage restore ? || > §2Restore Subcommand\ Restore a previous backup SQLite database (.db file)\ You can also restore database.db from another server to MySQL.\ Target database is cleared before transfer. -In Depth Help - /plan manage setup ? || > §2Setup Subcommand\ Set-up a connection between Bungee and this server for network functionality.\ BungeeAddress can be found in the enable log on console when Plan enables on Bungee. -In Depth Help - /plan network ? || > §2Network Command\ Displays link to the network page.\ If not on a network, this page displays the server page. -In Depth Help - /plan players ? || > §2Players Command\ Displays link to the players page. -In Depth Help - /plan qinspect ? || > §2Quick Inspect Command\ Displays some information about the player in game. -In Depth Help - /plan reload ? || > §2Reload Command\ Restarts the plugin using onDisable and onEnable.\ §bDoes not support swapping jar on the fly -In Depth Help - /plan search ? || > §2Search Command\ Get a list of Player names that match the given argument.\§7 Example: /plan search 123 - Finds all users with 123 in their name. -In Depth Help - /plan servers ? || > §2Servers Command\ Displays list of Plan servers in the Database.\ Can be used to debug issues with database registration on a network. -In Depth Help - /plan update ? || > §2Update Command\ Used to update the plugin on the next shutdown\ /plan update - Changelog link\ /plan update -u - Schedule update to happen on all network servers that are online, next time they reboot.\ /plan update cancel - Cancel scheduled update on servers that haven't rebooted yet. -In Depth Help - /plan web ? || < §2Web User Manage Command.\ §2/plan web §fList subcommands\ §2/plan web ? §fIn Depth help -In Depth Help - /plan web register ? || > §2Register Subcommand\ Registers a new Web User.\ Registering a user for another player requires plan.webmanage permission.\ Passwords are hashed with PBKDF2 (64,000 iterations of SHA1) using a cryptographically-random salt. -In Depth Help - /planbungee disable ? || > §2Disable Command\ Runs onDisable on PlanBungee.\ Plugin can be enabled with /planbungee reload afterwards.\ §bDoes not support swapping jar on the fly -In Depth Help - /planbungee setup ? || > §2Set-up toggle Command\ Toggles set-up mode on Bungee.\ Safeguard against unauthorized MySQL snooping with another server. -Manage - Confirm Overwrite || Data in ${0} will be overwritten! -Manage - Confirm Removal || Data in ${0} will be removed! -Manage - Fail || > §cSomething went wrong: ${0} -Manage - Fail File not found || > §cNo File found at ${0} -Manage - Fail Incorrect Database || > §c'${0}' is not a supported database. -Manage - Fail No Importer || §eImporter '${0}' doesn't exist -Manage - Fail Same Database || > §cCan not operate on to and from the same database! -Manage - Fail, Confirmation || > §cAdd '-a' argument to confirm execution: ${0} -Manage - Fail, Connection Exception || §eFail reason: -Manage - Fail, No Servers || §cNo Servers found in the database. -Manage - Fail, Old version || §eFail reason: Older Plan version on receiving server -Manage - Fail, Unauthorized || §eFail reason: Unauthorized. Server might be using different database. -Manage - Fail, Unexpected Exception || §eOdd Exception: ${0} -Manage - List Importers || Importers: -Manage - Notify External Url || §eNon-local address, check that port is open -Manage - Remind HotSwap || §eRemember to swap to the new database (/plan m hotswap ${0}) & reload the plugin. -Manage - Start || > §2Processing data.. -Manage - Success || > §aSuccess! -Negative || No -Positive || Yes -Unknown || Unknown -Version - DEV || This is a DEV release. -Version - Latest || You're using the latest version. -Version - New || New Release (${0}) is available ${1} -Version - New (old) || New Version is available at ${0} -Version FAIL - Read info (old) || Failed to check newest version number -Version FAIL - Read versions.txt || Version information could not be loaded from Github/versions.txt -Web User Listing || §2${0} §7: §f${1} -WebServer - Notify HTTP || WebServer: No Certificate -> Using HTTP-server for Visualization. -WebServer - Notify HTTP User Auth || WebServer: User Authorization Disabled! (Not secure over HTTP) -WebServer - Notify no Cert file || WebServer: Certificate KeyStore File not Found: ${0} -WebServer FAIL - Port Bind || WebServer was not initialized successfully. Is the port (${0}) in use? -WebServer FAIL - SSL Context || WebServer: SSL Context Initialization Failed. -WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. -Yesterday || 'Yesterday' -Today || 'Today' -Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4) -Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4) -Health - Downtime || Total Server downtime (No Data) was ${0} -Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average) -Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average) -Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2}) -Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate. -Health - Player Play on Network || players played on the network: -Health - Player Register Server || players register on servers per day/server on average. -Health - Player Visit Server || players visit on servers per day/server on average. -Health - Regular Activity Change || Number of regular players has -Health - Regular Activity Change Decrease || decreased (${0}) -Health - Regular Activity Change Increase || increased (+${0}) -Health - Regular Activity Change Zero || stayed the same (+${0}) -Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2}) -Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data. -Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time -Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times -HTML - FREE_DISK_SPACE || Free Disk Space -HTML - DISK_SPACE || DISK SPACE \ No newline at end of file diff --git a/Plan/common/src/main/resources/bungee.yml b/Plan/common/src/main/resources/bungee.yml index 97f6fbf5c..7e07ff267 100644 --- a/Plan/common/src/main/resources/bungee.yml +++ b/Plan/common/src/main/resources/bungee.yml @@ -1,7 +1,7 @@ name: Plan author: Rsl1122 main: com.djrapitops.plan.PlanBungee -version: 4.8.6 +version: 4.8.7 softdepend: - AdvancedBan - LiteBans diff --git a/Plan/common/src/main/resources/plugin.yml b/Plan/common/src/main/resources/plugin.yml index ec33fa0cd..9632a8268 100644 --- a/Plan/common/src/main/resources/plugin.yml +++ b/Plan/common/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Plan author: Rsl1122 main: com.djrapitops.plan.Plan -version: 4.8.6 +version: 4.8.7 softdepend: - ASkyBlock - AdvancedAchievements diff --git a/Plan/plugin/build.gradle b/Plan/plugin/build.gradle index 19261fdf0..792542194 100644 --- a/Plan/plugin/build.gradle +++ b/Plan/plugin/build.gradle @@ -15,6 +15,8 @@ shadowJar { configurations = [project.configurations.compile] relocate 'dagger', 'plan.dagger' + relocate 'com.mysql.jdbc', 'plan.com.mysql.jdbc' + relocate 'com.mysql.cj', 'plan.com.mysql.cj' destinationDir = file("$rootDir/builds/") baseName = "Plan" diff --git a/Plan/sponge/src/main/java/com/djrapitops/plan/PlanSponge.java b/Plan/sponge/src/main/java/com/djrapitops/plan/PlanSponge.java index e2d3624e4..65a16816e 100644 --- a/Plan/sponge/src/main/java/com/djrapitops/plan/PlanSponge.java +++ b/Plan/sponge/src/main/java/com/djrapitops/plan/PlanSponge.java @@ -42,7 +42,7 @@ import java.io.InputStream; @Plugin( id = "plan", name = "Plan", - version = "4.8.6", + version = "4.8.7", description = "Player Analytics Plugin by Rsl1122", authors = {"Rsl1122"}, dependencies = { diff --git a/Plan/velocity/src/main/java/com/djrapitops/plan/PlanVelocity.java b/Plan/velocity/src/main/java/com/djrapitops/plan/PlanVelocity.java index 4891ceaa4..6d6b5bf9f 100644 --- a/Plan/velocity/src/main/java/com/djrapitops/plan/PlanVelocity.java +++ b/Plan/velocity/src/main/java/com/djrapitops/plan/PlanVelocity.java @@ -46,7 +46,7 @@ import java.nio.file.Path; @Plugin( id = "plan", name = "Plan", - version = "4.8.6", + version = "4.8.7", description = "Player Analytics Plugin by Rsl1122", authors = {"Rsl1122"} ) diff --git a/PlanPluginBridge/pom.xml b/PlanPluginBridge/pom.xml index 3799bd0d0..97fae9987 100644 --- a/PlanPluginBridge/pom.xml +++ b/PlanPluginBridge/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.djrapitops PlanPluginBridge - 4.8.2-R0.5 + 4.8.7-R0.1 jar ${project.groupId}:${project.artifactId} @@ -81,7 +81,7 @@ org.apache.commons commons-text - 1.6 + 1.7 @@ -124,7 +124,7 @@ me.clip placeholderapi - 2.10.1 + 2.10.3 provided