From 389a87a306ee3e8b3b4d0775f9ecd8715e87554b Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Thu, 7 Sep 2017 18:43:09 +0300 Subject: [PATCH] Name Cache & Fixed PluginBridge --- .../plan/data/additional/PluginData.java | 9 +++ .../plan/database/tables/UsersTable.java | 26 ++++++++- .../plan/systems/cache/DataCache.java | 17 ++++-- .../plan/systems/info/InformationManager.java | 1 + .../plan/utilities/html/HtmlUtils.java | 10 +++- .../html/graphs/WorldPieCreator.java | 2 +- .../Maven__com_djrapitops_Plan_3_7_0.xml | 13 ----- PlanPluginBridge/pom.xml | 12 +--- .../djrapitops/pluginbridge/plan/Bridge.java | 3 +- .../pluginbridge/plan/FakeOfflinePlayer.java | 25 ++++---- .../AdvancedAchievementsTable.java | 38 ++++++------ .../plan/essentials/EssentialsWarps.java | 2 +- .../plan/factions/FactionsTable.java | 6 +- .../GriefPreventionClaimTable.java | 2 +- .../plan/importing/OnTimeImporter.java | 58 ------------------- .../plan/jobs/JobsAnalysisJobTable.java | 2 +- .../plan/jobs/JobsInspectJobTable.java | 2 +- .../plan/litebans/LiteBansBansTable.java | 18 ++---- .../litebans/LiteBansDatabaseQueries.java | 10 +--- .../litebans/LiteBansInspectBansTable.java | 6 +- .../plan/mcmmo/McmmoAnalysisSkillTable.java | 2 +- .../plan/mcmmo/McmmoInspectSkillTable.java | 10 +--- .../pluginbridge/plan/ontime/OntimeRefer.java | 14 +---- .../plan/ontime/OntimeReferMonth.java | 14 +---- .../plan/ontime/OntimeReferWeek.java | 14 +---- .../pluginbridge/plan/ontime/OntimeVotes.java | 14 +---- .../plan/ontime/OntimeVotesMonth.java | 14 +---- .../plan/ontime/OntimeVotesWeek.java | 14 +---- .../plan/superbvote/SuperbVoteVotesTable.java | 19 +++--- .../pluginbridge/plan/towny/TownyTable.java | 6 +- .../pluginbridge/plan/towny/TownyTown.java | 14 +---- .../plan/vault/EconomyBalance.java | 8 +-- .../plan/vault/EconomyBalanceTable.java | 22 +++---- .../plan/vault/PermGroupTable.java | 7 +-- .../viaversion/PlayerVersionListener.java | 25 ++++---- .../plan/viaversion/ProtocolTable.java | 33 +++++------ .../plan/viaversion/ViaVersionHook.java | 15 +++-- .../viaversion/ViaVersionVersionTable.java | 7 ++- 38 files changed, 192 insertions(+), 322 deletions(-) delete mode 100644 PlanPluginBridge/.idea/libraries/Maven__com_djrapitops_Plan_3_7_0.xml delete mode 100644 PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/importing/OnTimeImporter.java 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 26b9074f2..ac7fc4600 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 @@ -1,5 +1,6 @@ package main.java.com.djrapitops.plan.data.additional; +import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.utilities.html.Html; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -321,4 +322,12 @@ public abstract class PluginData { .append("suffix", suffix) .toString(); } + + protected Set getUUIDsBeingAnalyzed() { + return Plan.getInstance().getDataCache().getUuids(); + } + + protected String getNameOf(UUID uuid) { + return Plan.getInstance().getDataCache().getName(uuid); + } } 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 70dccd3db..4b4d50515 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 @@ -345,7 +345,7 @@ public class UsersTable extends UserIDTable { try { statement = prepareStatement(Select.all(tableName) .toString()); - statement.setFetchSize(5000); + statement.setFetchSize(20000); set = statement.executeQuery(); Map users = new HashMap<>(); while (set.next()) { @@ -392,7 +392,7 @@ public class UsersTable extends UserIDTable { try { statement = prepareStatement(Select.from(tableName, columnUUID, columnTimesKicked) .toString()); - statement.setFetchSize(5000); + statement.setFetchSize(20000); set = statement.executeQuery(); Map timesKicked = new HashMap<>(); while (set.next()) { @@ -407,4 +407,26 @@ public class UsersTable extends UserIDTable { close(set, statement); } } + + public Map getPlayerNames() throws SQLException { + PreparedStatement statement = null; + ResultSet set = null; + try { + statement = prepareStatement(Select.from(tableName, columnUUID, columnName) + .toString()); + statement.setFetchSize(20000); + set = statement.executeQuery(); + Map names = new HashMap<>(); + while (set.next()) { + UUID uuid = UUID.fromString(set.getString(columnUUID)); + String name = set.getString(columnName); + + names.put(uuid, name); + } + return names; + } finally { + endTransaction(statement); + close(set, statement); + } + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/cache/DataCache.java b/Plan/src/main/java/com/djrapitops/plan/systems/cache/DataCache.java index 914262916..c8eb62c25 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/cache/DataCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/cache/DataCache.java @@ -5,10 +5,7 @@ import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.database.Database; import java.sql.SQLException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; /** * This Class contains the Cache. @@ -55,6 +52,14 @@ public class DataCache extends SessionCache { displayNames.put(uuid, displayName); } + public void cacheSavedNames() { + try { + playerNames.putAll(db.getUsersTable().getPlayerNames()); + } catch (SQLException e) { + Log.toLog(this.getClass().getName(), e); + } + } + /** * Used to get the player name in the cache. * @@ -119,4 +124,8 @@ public class DataCache extends SessionCache { public int getFirstSessionMsgCount(UUID uuid) { return firstSessionInformation.getOrDefault(uuid, 0); } + + public Set getUuids() { + return playerNames.keySet(); + } } diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/info/InformationManager.java b/Plan/src/main/java/com/djrapitops/plan/systems/info/InformationManager.java index 5f57968ef..9dc9f0319 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/info/InformationManager.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/info/InformationManager.java @@ -86,6 +86,7 @@ public class InformationManager { } public void refreshAnalysis() { + plugin.getDataCache().cacheSavedNames(); analysis.runAnalysis(this); } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlUtils.java index cd69563dc..a9e919c2b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/HtmlUtils.java @@ -3,11 +3,13 @@ package main.java.com.djrapitops.plan.utilities.html; import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.Settings; import main.java.com.djrapitops.plan.systems.webserver.WebServer; +import main.java.com.djrapitops.plan.utilities.MiscUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.StrSubstitutor; import java.io.Serializable; import java.util.Map; +import java.util.UUID; /** * @author Rsl1122 @@ -79,7 +81,9 @@ public class HtmlUtils { /** * @param playerName * @return + * @deprecated Use getRelativeInspectUrl instead. */ + @Deprecated public static String getInspectUrl(String playerName) { String ip = getIP(); return "//" + ip + "/player/" + playerName.replace(" ", "%20").replace(".", "%2E"); @@ -89,12 +93,16 @@ public class HtmlUtils { return "../player/" + playerName; } + public static String getRelativeInspectUrl(UUID uuid) { + return getRelativeInspectUrl(Plan.getInstance().getDataCache().getName(uuid)); + } + /** * @param string * @return */ public static String removeXSS(String string) { - return StringUtils.removeAll(string,"()|()"); + return StringUtils.removeAll(string, "()|()"); } /** diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/graphs/WorldPieCreator.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/graphs/WorldPieCreator.java index b5eb2950d..897f858d4 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/graphs/WorldPieCreator.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/graphs/WorldPieCreator.java @@ -52,7 +52,7 @@ public class WorldPieCreator { Map gmTimesMap = worldTimes.getWorldTimes(); if (gmTimesMap.isEmpty()) { - return "[{[]}]"; + return "[]"; } int size = gmTimesMap.size(); drilldownBuilder.append("["); diff --git a/PlanPluginBridge/.idea/libraries/Maven__com_djrapitops_Plan_3_7_0.xml b/PlanPluginBridge/.idea/libraries/Maven__com_djrapitops_Plan_3_7_0.xml deleted file mode 100644 index 5e868fcca..000000000 --- a/PlanPluginBridge/.idea/libraries/Maven__com_djrapitops_Plan_3_7_0.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/PlanPluginBridge/pom.xml b/PlanPluginBridge/pom.xml index 482956394..f8d9a382a 100644 --- a/PlanPluginBridge/pom.xml +++ b/PlanPluginBridge/pom.xml @@ -4,17 +4,9 @@ 4.0.0 com.djrapitops PlanPluginBridge - 3.7.0 + 4.0.0 jar - - plan-repo - http://repo.fuzzlemann.de/artifactory/libs-release/ - - - plan-snapshot-repo - http://repo.fuzzlemann.de/artifactory/libs-snapshot/ - vault-repo http://nexus.hc.to/content/repositories/pub_releases @@ -32,7 +24,7 @@ com.djrapitops Plan - 3.7.0 + 4.0.0 provided diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/Bridge.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/Bridge.java index 52c070d76..6dc133c38 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/Bridge.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/Bridge.java @@ -1,7 +1,6 @@ package com.djrapitops.pluginbridge.plan; import main.java.com.djrapitops.plan.data.additional.HookHandler; -import main.java.com.djrapitops.plan.data.cache.DataCacheHandler; /** * @author Rsl1122 @@ -23,7 +22,7 @@ public class Bridge { try { String className = "com.djrapitops.pluginbridge.plan." + pluginName + "Hook"; Class clazz = (Class) Hook.class.forName(className); - clazz.getConstructor(DataCacheHandler.class).newInstance(handler); + clazz.getConstructor(HookHandler.class).newInstance(handler); } catch (Exception | NoClassDefFoundError ignore) { } } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/FakeOfflinePlayer.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/FakeOfflinePlayer.java index 21f199888..e4d48629f 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/FakeOfflinePlayer.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/FakeOfflinePlayer.java @@ -5,7 +5,6 @@ */ package com.djrapitops.pluginbridge.plan; -import main.java.com.djrapitops.plan.data.UserData; import org.bukkit.Location; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -19,34 +18,32 @@ import java.util.UUID; */ public class FakeOfflinePlayer implements OfflinePlayer { - private final UserData data; + private final UUID uuid; + private final String name; - public FakeOfflinePlayer(UserData data) { - this.data = data; + public FakeOfflinePlayer(UUID uuid, String name) { + this.uuid = uuid; + this.name = name; } @Override public boolean isOnline() { - return data.isOnline(); + return false; } @Override public String getName() { - String name = data.getName(); - if (name == null) { - name = "null"; - } return name; } @Override public UUID getUniqueId() { - return data.getUuid(); + return uuid; } @Override public boolean isBanned() { - return data.isBanned(); + return false; } @Override @@ -66,12 +63,12 @@ public class FakeOfflinePlayer implements OfflinePlayer { @Override public long getFirstPlayed() { - return data.getRegistered(); + return 0L; } @Override public long getLastPlayed() { - return data.getLastPlayed(); + return 0L; } @Override @@ -86,7 +83,7 @@ public class FakeOfflinePlayer implements OfflinePlayer { @Override public boolean isOp() { - return data.isOp(); + return false; } @Override diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/advancedachievements/AdvancedAchievementsTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/advancedachievements/AdvancedAchievementsTable.java index 7670a9140..a7a4aab6d 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/advancedachievements/AdvancedAchievementsTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/advancedachievements/AdvancedAchievementsTable.java @@ -2,14 +2,14 @@ package com.djrapitops.pluginbridge.plan.advancedachievements; import com.hm.achievement.api.AdvancedAchievementsAPI; import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; import java.io.Serializable; import java.util.Map; +import java.util.Set; import java.util.UUID; /** @@ -48,38 +48,34 @@ public class AdvancedAchievementsTable extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuidUnused) { StringBuilder html = new StringBuilder(); - Map cachedUserData = Plan.getPlanAPI().getInspectCachedUserDataMap(); - if (cachedUserData.isEmpty()) { + Set users = Plan.getInstance().getDataCache().getUuids(); + if (users.isEmpty()) { html.append(Html.TABLELINE_2.parse("No Players.", "")); } else if (aaAPI.getAdvancedAchievementsVersionCode() >= 520) { - appendTableLinesForV520Plus(cachedUserData, html); + appendTableLinesForV520Plus(users, html); } else { - appendTableLinesForLessThanV520(cachedUserData, html); + appendTableLinesForLessThanV520(users, html); } return parseContainer("", html.toString()); } - private void appendTableLinesForLessThanV520(Map cachedUserData, StringBuilder html) { - cachedUserData.values().forEach(uData -> { - String inspectUrl = HtmlUtils.getRelativeInspectUrl(uData.getName()); - int achievements = aaAPI.getPlayerTotalAchievements(uData.getUuid()); - html.append(Html.TABLELINE_2.parse(Html.LINK.parse(inspectUrl, uData.getName()), achievements)); + private void appendTableLinesForLessThanV520(Set users, StringBuilder html) { + users.forEach(uuid -> { + String name = super.getNameOf(uuid); + String inspectUrl = HtmlUtils.getRelativeInspectUrl(name); + int achievements = aaAPI.getPlayerTotalAchievements(uuid); + html.append(Html.TABLELINE_2.parse(Html.LINK.parse(inspectUrl, name), achievements)); }); } - private void appendTableLinesForV520Plus(Map cachedUserData, StringBuilder html) { + private void appendTableLinesForV520Plus(Set users, StringBuilder html) { Map achievementsMap = aaAPI.getPlayersTotalAchievements(); for (Map.Entry entry : achievementsMap.entrySet()) { UUID uuid = entry.getKey(); int achievements = entry.getValue(); - - UserData uData = cachedUserData.get(uuid); - if (uData == null) { - continue; - } - - String inspectUrl = HtmlUtils.getInspectUrl(uData.getName()); - html.append(Html.TABLELINE_2.parse(Html.LINK.parse(inspectUrl, uData.getName()), achievements)); + String name = getNameOf(uuid); + String inspectUrl = HtmlUtils.getRelativeInspectUrl(name); + html.append(Html.TABLELINE_2.parse(Html.LINK.parse(inspectUrl, name), achievements)); } } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/essentials/EssentialsWarps.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/essentials/EssentialsWarps.java index b6c5fcae3..722221d6e 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/essentials/EssentialsWarps.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/essentials/EssentialsWarps.java @@ -4,7 +4,7 @@ import com.earth2me.essentials.Essentials; import com.earth2me.essentials.Warps; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; +import main.java.com.djrapitops.plan.utilities.html.Html; import java.io.Serializable; import java.util.*; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/factions/FactionsTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/factions/FactionsTable.java index 5351bcbfb..5b98752b7 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/factions/FactionsTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/factions/FactionsTable.java @@ -6,9 +6,9 @@ import com.massivecraft.factions.entity.MPlayer; import main.java.com.djrapitops.plan.Settings; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; import java.io.Serializable; import java.util.ArrayList; @@ -73,7 +73,7 @@ public class FactionsTable extends PluginData { if (f != null) { MPlayer fLeader = f.getLeader(); String leader = fLeader != null ? fLeader.getNameAndSomething("", "") : "No Leader"; - String leaderPage = Html.LINK.parse(HtmlUtils.getInspectUrl(leader), leader); + String leaderPage = Html.LINK.parse(HtmlUtils.getRelativeInspectUrl(leader), leader); html.append(Html.TABLELINE_4.parse( f.getName(), FormatUtils.cutDecimals(f.getPower()), diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/griefprevention/GriefPreventionClaimTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/griefprevention/GriefPreventionClaimTable.java index 4941e5007..3ab91e287 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/griefprevention/GriefPreventionClaimTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/griefprevention/GriefPreventionClaimTable.java @@ -3,7 +3,7 @@ package com.djrapitops.pluginbridge.plan.griefprevention; import com.djrapitops.plugin.utilities.FormattingUtils; import com.djrapitops.plugin.utilities.Verify; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; +import main.java.com.djrapitops.plan.utilities.html.Html; import me.ryanhamshire.GriefPrevention.DataStore; import java.io.Serializable; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/importing/OnTimeImporter.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/importing/OnTimeImporter.java deleted file mode 100644 index 732d27195..000000000 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/importing/OnTimeImporter.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.djrapitops.pluginbridge.plan.importing; - -import main.java.com.djrapitops.plan.data.UserData; -import main.java.com.djrapitops.plan.data.handling.importing.Importer; -import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; -import main.java.com.djrapitops.plan.data.handling.info.InfoType; -import me.edge209.OnTime.OnTimeAPI; -import org.bukkit.OfflinePlayer; - -import java.util.UUID; - -import static org.bukkit.Bukkit.getOfflinePlayer; - -/** - * Class responsible for importing data from OnTime plugin. - * - * Imports playtime - * - * @author Rsl1122 - * @since 3.2.0 - */ -public class OnTimeImporter extends Importer { - - /** - * Constructor. - */ - public OnTimeImporter() { - super.setInfo("Imports playtime from OnTime & resets GMTimes to survival"); - } - - /** - * Imports playtime from Ontime. - * - * Resets GameMode times to survival because it is playtime dependent. - * - * @param uuid UUID of the player - * @return HandlingInfo object - */ - @Override - public HandlingInfo importData(UUID uuid, String... args) { - OfflinePlayer p = getOfflinePlayer(uuid); - Long playTime = OnTimeAPI.getPlayerTimeData(p.getName(), OnTimeAPI.data.TOTALPLAY); - return new HandlingInfo(uuid, InfoType.OTHER, 0L) { - @Override - public boolean process(UserData uData) { - if (uuid != uData.getUuid()) { - return false; - } - if (playTime > uData.getPlayTime()) { - uData.setPlayTime(playTime); - uData.getGmTimes().resetTimes(playTime); - } - return true; - } - }; - - } -} diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsAnalysisJobTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsAnalysisJobTable.java index 99f04144d..ab9a21126 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsAnalysisJobTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsAnalysisJobTable.java @@ -4,9 +4,9 @@ import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.dao.JobsDAOData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; import java.io.Serializable; import java.util.*; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsInspectJobTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsInspectJobTable.java index 7bdf10720..eefd72aca 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsInspectJobTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/jobs/JobsInspectJobTable.java @@ -3,7 +3,7 @@ package com.djrapitops.pluginbridge.plan.jobs; import com.gamingmesh.jobs.Jobs; import com.gamingmesh.jobs.dao.JobsDAOData; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; +import main.java.com.djrapitops.plan.utilities.html.Html; import java.io.Serializable; import java.util.List; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansBansTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansBansTable.java index 19076e8d0..63fddaff4 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansBansTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansBansTable.java @@ -1,17 +1,14 @@ package com.djrapitops.pluginbridge.plan.litebans; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; import java.io.Serializable; import java.sql.SQLException; import java.util.List; -import java.util.Map; import java.util.UUID; /** @@ -54,20 +51,15 @@ public class LiteBansBansTable extends PluginData { StringBuilder html = new StringBuilder(); try { List bans = db.getBans(); - Map users = Plan.getPlanAPI().getInspectCachedUserDataMap(); for (BanObject ban : bans) { UUID uuid = ban.getUuid(); - UserData userData = users.get(uuid); - if (userData == null) { - continue; - } - String name = userData.getName(); + String name = getNameOf(uuid); String tableLine = "REPLACE0REPLACE1REPLACE2REPLACE4"; long expiry = ban.getExpiry(); String expires = expiry <= 0 ? "Never" : FormatUtils.formatTimeStampSecond(expiry); html.append(tableLine - .replace("REPLACE0", Html.LINK.parse(HtmlUtils.getInspectUrl(name), name)) - .replace("REPLACE1", Html.LINK.parse(HtmlUtils.getInspectUrl(ban.getBannedBy()), ban.getBannedBy())) + .replace("REPLACE0", Html.LINK.parse(HtmlUtils.getRelativeInspectUrl(name), name)) + .replace("REPLACE1", Html.LINK.parse(HtmlUtils.getRelativeInspectUrl(ban.getBannedBy()), ban.getBannedBy())) .replace("REPLACE2", ban.getReason()) .replace("REPLACE3", expiry <= 0 ? "0" : Long.toString(expiry)) .replace("REPLACE4", expires diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansDatabaseQueries.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansDatabaseQueries.java index 0665223ef..c8091e2b4 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansDatabaseQueries.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansDatabaseQueries.java @@ -1,6 +1,7 @@ package com.djrapitops.pluginbridge.plan.litebans; import litebans.api.Database; +import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException; import main.java.com.djrapitops.plan.database.tables.Table; import java.sql.PreparedStatement; @@ -66,13 +67,8 @@ public class LiteBansDatabaseQueries extends Table { } } - /** - * @return false - * @deprecated Not in use. - */ @Override - @Deprecated - public boolean createTable() { - return false; + public void createTable() throws DBCreateTableException { + throw new IllegalStateException("Not Supposed to be called."); } } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansInspectBansTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansInspectBansTable.java index 895cd8a79..639dcf6fc 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansInspectBansTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/litebans/LiteBansInspectBansTable.java @@ -1,9 +1,9 @@ package com.djrapitops.pluginbridge.plan.litebans; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; import java.io.Serializable; import java.sql.SQLException; @@ -58,7 +58,7 @@ public class LiteBansInspectBansTable extends PluginData { html.append(Html.TABLELINE_3_CUSTOMKEY_1.parse( expiry <= 0 ? "0" : Long.toString(expiry), expires, - Html.LINK.parse(HtmlUtils.getInspectUrl(ban.getBannedBy()), ban.getBannedBy()), + Html.LINK.parse("." + HtmlUtils.getRelativeInspectUrl(ban.getBannedBy()), ban.getBannedBy()), ban.getReason()) ); } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoAnalysisSkillTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoAnalysisSkillTable.java index c1efdbdcd..94b1d627d 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoAnalysisSkillTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoAnalysisSkillTable.java @@ -6,9 +6,9 @@ import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.util.player.UserManager; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; import org.apache.commons.lang.StringUtils; import java.io.Serializable; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoInspectSkillTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoInspectSkillTable.java index ff9ec90d7..75826d0d2 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoInspectSkillTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/mcmmo/McmmoInspectSkillTable.java @@ -9,9 +9,8 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.PlayerProfile; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.util.player.UserManager; -import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; +import main.java.com.djrapitops.plan.utilities.html.Html; import org.apache.commons.lang.StringUtils; import java.io.Serializable; @@ -25,12 +24,12 @@ import static org.bukkit.Bukkit.getOfflinePlayer; /** * PluginData class for McMMO-plugin. - * + *

* Registered to the plugin by McmmoHook * * @author Rsl1122 - * @since 3.2.1 * @see McmmoHook + * @since 3.2.1 */ public class McmmoInspectSkillTable extends PluginData { @@ -49,9 +48,6 @@ public class McmmoInspectSkillTable extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - if (!Plan.getInstance().getHandler().getDataCache().containsKey(uuid)) { - return parseContainer("", Html.TABLELINE_2.parse("User not known/online", "")); - } McMMOPlayer user = UserManager.getOfflinePlayer(getOfflinePlayer(uuid)); if (user == null) { return parseContainer("", Html.TABLELINE_2.parse("User not known/online", "")); diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeRefer.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeRefer.java index 2a1f25914..2fe0c661d 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeRefer.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeRefer.java @@ -1,7 +1,5 @@ package com.djrapitops.pluginbridge.plan.ontime; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import me.edge209.OnTime.OnTimeAPI; @@ -34,11 +32,7 @@ public class OntimeRefer extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "No Referrals."); - } - String name = data.getName(); + String name = getNameOf(uuid); long referTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.TOTALREFER); if (referTotal == -1) { return parseContainer(modifierPrefix, "No Referrals."); @@ -48,11 +42,7 @@ public class OntimeRefer extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return -1L; - } - String name = data.getName(); + String name = getNameOf(uuid); long referTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.TOTALREFER); if (referTotal == -1) { return -1L; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferMonth.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferMonth.java index 3c50d48a0..3e7a507a1 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferMonth.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferMonth.java @@ -1,7 +1,5 @@ package com.djrapitops.pluginbridge.plan.ontime; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import me.edge209.OnTime.OnTimeAPI; @@ -34,11 +32,7 @@ public class OntimeReferMonth extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "No Referrals."); - } - String name = data.getName(); + String name = getNameOf(uuid); long referTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.MONTHREFER); if (referTotal == -1) { return parseContainer(modifierPrefix, "No Referrals."); @@ -48,11 +42,7 @@ public class OntimeReferMonth extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return -1L; - } - String name = data.getName(); + String name = getNameOf(uuid); long referTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.MONTHREFER); if (referTotal == -1) { return -1L; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferWeek.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferWeek.java index 6b6e1aee0..ea577462a 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferWeek.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeReferWeek.java @@ -1,7 +1,5 @@ package com.djrapitops.pluginbridge.plan.ontime; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import me.edge209.OnTime.OnTimeAPI; @@ -34,11 +32,7 @@ public class OntimeReferWeek extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "No Referrals."); - } - String name = data.getName(); + String name = getNameOf(uuid); long referTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.WEEKREFER); if (referTotal == -1) { return parseContainer(modifierPrefix, "No Referrals."); @@ -48,11 +42,7 @@ public class OntimeReferWeek extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return -1L; - } - String name = data.getName(); + String name = getNameOf(uuid); long referTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.WEEKREFER); if (referTotal == -1) { return -1L; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotes.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotes.java index 8f18e78e1..3f29a1620 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotes.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotes.java @@ -1,7 +1,5 @@ package com.djrapitops.pluginbridge.plan.ontime; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import me.edge209.OnTime.OnTimeAPI; @@ -34,11 +32,7 @@ public class OntimeVotes extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "No votes."); - } - String name = data.getName(); + String name = getNameOf(uuid); long votesTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.TOTALVOTE); if (votesTotal == -1) { return parseContainer(modifierPrefix, "No votes."); @@ -48,11 +42,7 @@ public class OntimeVotes extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return -1L; - } - String name = data.getName(); + String name = getNameOf(uuid); long votesTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.TOTALVOTE); if (votesTotal == -1) { return -1L; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesMonth.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesMonth.java index 2c2f9c8d5..130fdcc17 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesMonth.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesMonth.java @@ -1,7 +1,5 @@ package com.djrapitops.pluginbridge.plan.ontime; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import me.edge209.OnTime.OnTimeAPI; @@ -34,11 +32,7 @@ public class OntimeVotesMonth extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "No votes."); - } - String name = data.getName(); + String name = getNameOf(uuid); long votesTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.MONTHVOTE); if (votesTotal == -1) { return parseContainer(modifierPrefix, "No votes."); @@ -48,11 +42,7 @@ public class OntimeVotesMonth extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return -1L; - } - String name = data.getName(); + String name = getNameOf(uuid); long votesTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.MONTHVOTE); if (votesTotal == -1) { return -1L; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesWeek.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesWeek.java index eb33f8b42..88d96654d 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesWeek.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/ontime/OntimeVotesWeek.java @@ -1,7 +1,5 @@ package com.djrapitops.pluginbridge.plan.ontime; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import me.edge209.OnTime.OnTimeAPI; @@ -34,11 +32,7 @@ public class OntimeVotesWeek extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "No votes."); - } - String name = data.getName(); + String name = getNameOf(uuid); long votesTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.WEEKVOTE); if (votesTotal == -1) { return parseContainer(modifierPrefix, "No votes."); @@ -48,11 +42,7 @@ public class OntimeVotesWeek extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return -1L; - } - String name = data.getName(); + String name = getNameOf(uuid); long votesTotal = OnTimeAPI.getPlayerTimeData(name, OnTimeAPI.data.WEEKVOTE); if (votesTotal == -1) { return -1L; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java index 550e5147f..7289aa42a 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java @@ -6,14 +6,14 @@ package com.djrapitops.pluginbridge.plan.superbvote; import io.minimum.minecraft.superbvote.storage.VoteStorage; -import java.io.Serializable; -import java.util.UUID; -import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; + +import java.io.Serializable; +import java.util.UUID; /** * PluginData class for Vault-plugin. @@ -47,10 +47,11 @@ public class SuperbVoteVotesTable extends PluginData { private String getTableLines() { StringBuilder html = new StringBuilder(); - Plan.getPlanAPI().getInspectCachedUserData() - .forEach(data -> { - String link = Html.LINK.parse(HtmlUtils.getInspectUrl(data.getName()), data.getName()); - String bal = FormatUtils.cutDecimals(store.getVotes(data.getUuid())); + getUUIDsBeingAnalyzed() + .forEach(uuid -> { + String name = getNameOf(uuid); + String link = Html.LINK.parse(HtmlUtils.getRelativeInspectUrl(name), name); + String bal = FormatUtils.cutDecimals(store.getVotes(uuid)); html.append(Html.TABLELINE_2.parse(link, bal)); }); return html.toString(); diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTable.java index 7c7c1665e..429bee167 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTable.java @@ -7,8 +7,8 @@ import com.palmergames.bukkit.towny.object.TownyUniverse; import main.java.com.djrapitops.plan.Settings; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; import java.io.Serializable; import java.util.List; @@ -61,7 +61,7 @@ public class TownyTable extends PluginData { } int residents = t.getNumResidents(); int land = t.getPurchasedBlocks(); - String leaderPage = Html.LINK.parse(HtmlUtils.getInspectUrl(mayor), mayor); + String leaderPage = Html.LINK.parse(HtmlUtils.getRelativeInspectUrl(mayor), mayor); html.append(Html.TABLELINE_4.parse(name, residents, land, leaderPage)); } } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTown.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTown.java index 4a95667f5..b5b4944ea 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTown.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/towny/TownyTown.java @@ -3,8 +3,6 @@ package com.djrapitops.pluginbridge.plan.towny; import com.palmergames.bukkit.towny.exceptions.NotRegisteredException; import com.palmergames.bukkit.towny.object.Resident; import com.palmergames.bukkit.towny.object.TownyUniverse; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.PluginData; import java.io.Serializable; @@ -37,11 +35,7 @@ public class TownyTown extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, notInTown); - } - String name = data.getName(); + String name = getNameOf(uuid); try { Resident res = TownyUniverse.getDataSource().getResident(name); String town; @@ -58,11 +52,7 @@ public class TownyTown extends PluginData { @Override public Serializable getValue(UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return notInTown; - } - String name = data.getName(); + String name = getNameOf(uuid); try { Resident res = TownyUniverse.getDataSource().getResident(name); String town; diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalance.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalance.java index 4a903e277..9d718078d 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalance.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalance.java @@ -1,8 +1,6 @@ package com.djrapitops.pluginbridge.plan.vault; import com.djrapitops.pluginbridge.plan.FakeOfflinePlayer; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.UserData; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; import main.java.com.djrapitops.plan.utilities.FormatUtils; @@ -45,11 +43,7 @@ public class EconomyBalance extends PluginData { @Override public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - UserData data = Plan.getPlanAPI().getInspectCachedUserDataMap().get(uuid); - if (data == null) { - return parseContainer(modifierPrefix, "0"); - } - OfflinePlayer p = new FakeOfflinePlayer(data); + OfflinePlayer p = new FakeOfflinePlayer(uuid, getNameOf(uuid)); if (this.econ.hasAccount(p)) { return parseContainer(modifierPrefix, Double.toString(this.econ.getBalance(p))); } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalanceTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalanceTable.java index ee8c39e01..b318bcd4a 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalanceTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/EconomyBalanceTable.java @@ -6,16 +6,16 @@ package com.djrapitops.pluginbridge.plan.vault; import com.djrapitops.pluginbridge.plan.FakeOfflinePlayer; -import java.io.Serializable; -import java.util.UUID; -import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; import main.java.com.djrapitops.plan.utilities.FormatUtils; -import main.java.com.djrapitops.plan.utilities.HtmlUtils; +import main.java.com.djrapitops.plan.utilities.html.Html; +import main.java.com.djrapitops.plan.utilities.html.HtmlUtils; import net.milkbowl.vault.economy.Economy; +import java.io.Serializable; +import java.util.UUID; + /** * PluginData class for Vault-plugin. * @@ -48,12 +48,12 @@ public class EconomyBalanceTable extends PluginData { private String getTableLines() { StringBuilder html = new StringBuilder(); - Plan.getPlanAPI().getInspectCachedUserData() - .forEach(data -> { - String link = Html.LINK.parse(HtmlUtils.getInspectUrl(data.getName()), data.getName()); - String bal = FormatUtils.cutDecimals(econ.getBalance(new FakeOfflinePlayer(data))); - html.append(Html.TABLELINE_2.parse(link, bal)); - }); + getUUIDsBeingAnalyzed().forEach(uuid -> { + String name = getNameOf(uuid); + String link = Html.LINK.parse(HtmlUtils.getRelativeInspectUrl(name), name); + String bal = FormatUtils.cutDecimals(econ.getBalance(new FakeOfflinePlayer(uuid, name))); + html.append(Html.TABLELINE_2.parse(link, bal)); + }); return html.toString(); } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/PermGroupTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/PermGroupTable.java index a91891949..539e9efa6 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/PermGroupTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/vault/PermGroupTable.java @@ -7,10 +7,9 @@ package com.djrapitops.pluginbridge.plan.vault; import com.djrapitops.plugin.utilities.Format; import com.djrapitops.pluginbridge.plan.FakeOfflinePlayer; -import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.additional.AnalysisType; import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; +import main.java.com.djrapitops.plan.utilities.html.Html; import net.milkbowl.vault.permission.Permission; import org.bukkit.OfflinePlayer; @@ -53,8 +52,8 @@ public class PermGroupTable extends PluginData { private String getTableLines() { Map groups = new HashMap<>(); - List userData = Plan.getPlanAPI().getInspectCachedUserData().stream() - .map(FakeOfflinePlayer::new).collect(Collectors.toList()); + List userData = getUUIDsBeingAnalyzed().stream() + .map(uuid -> new FakeOfflinePlayer(uuid, getNameOf(uuid))).collect(Collectors.toList()); for (OfflinePlayer p : userData) { String group = permSys.getPrimaryGroup(null, p); if (!groups.containsKey(group)) { diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/PlayerVersionListener.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/PlayerVersionListener.java index 2a5f4537b..b6617d04b 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/PlayerVersionListener.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/PlayerVersionListener.java @@ -5,19 +5,18 @@ */ package com.djrapitops.pluginbridge.plan.viaversion; -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.UserData; -import main.java.com.djrapitops.plan.data.handling.info.HandlingInfo; -import main.java.com.djrapitops.plan.data.handling.info.InfoType; +import main.java.com.djrapitops.plan.systems.processing.Processor; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import us.myles.ViaVersion.api.ViaAPI; +import java.sql.SQLException; +import java.util.UUID; + /** * Class responsible for listening join events for Version protocol. * @@ -37,20 +36,18 @@ public class PlayerVersionListener implements Listener { } @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerLogin(PlayerJoinEvent event) { + public void onJoin(PlayerJoinEvent event) { UUID uuid = event.getPlayer().getUniqueId(); int playerVersion = viaAPI.getPlayerVersion(uuid); - HandlingInfo i = new HandlingInfo(uuid, InfoType.OTHER, 0) { + plan.addToProcessQueue(new Processor(uuid) { @Override - public boolean process(UserData uData) { + public void process() { try { - table.saveProtocolVersion(uData.getUuid(), playerVersion); - } catch (SQLException ex) { - Log.toLog(this.getClass().getName(), ex); + table.saveProtocolVersion(uuid, playerVersion); + } catch (SQLException e) { + Log.toLog(this.getClass().getName() + ":PlanViaVersionJoinListener", e); } - return true; } - }; - plan.getHandler().addToPool(i); + }); } } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ProtocolTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ProtocolTable.java index a120fe3b9..0a79cf4ea 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ProtocolTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ProtocolTable.java @@ -5,15 +5,16 @@ */ package com.djrapitops.pluginbridge.plan.viaversion; +import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException; +import main.java.com.djrapitops.plan.database.databases.SQLDB; +import main.java.com.djrapitops.plan.database.tables.Table; + import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; 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.database.databases.SQLDB; -import main.java.com.djrapitops.plan.database.tables.Table; /** * Class responsible for version protocol information in Plan database. @@ -27,24 +28,18 @@ public class ProtocolTable extends Table { private final String columnProtocolVersion; public ProtocolTable(SQLDB db) { - super("plan_viaversion_protocol", db, db.supportsModification()); + super("plan_viaversion_protocol", db, db.isUsingMySQL()); columnUUID = "uuid"; columnProtocolVersion = "protocol_version"; } @Override - public boolean createTable() { - try { - execute("CREATE TABLE IF NOT EXISTS " + tableName + " (" - + columnUUID + " varchar(36) NOT NULL UNIQUE, " - + columnProtocolVersion + " integer NOT NULL" - + ")" - ); - return true; - } catch (SQLException ex) { - Log.toLog(this.getClass().getName(), ex); - return false; - } + public void createTable() throws DBCreateTableException { + createTable("CREATE TABLE IF NOT EXISTS " + tableName + " (" + + columnUUID + " varchar(36) NOT NULL UNIQUE, " + + columnProtocolVersion + " integer NOT NULL" + + ")" + ); } public void saveProtocolVersion(UUID uuid, int version) throws SQLException { @@ -115,9 +110,9 @@ public class ProtocolTable extends Table { try { statement = prepareStatement( "INSERT INTO " + tableName + " (" - + columnUUID + ", " - + columnProtocolVersion - + ") VALUES (?, ?)"); + + columnUUID + ", " + + columnProtocolVersion + + ") VALUES (?, ?)"); statement.setString(1, uuid.toString()); statement.setInt(2, version); statement.execute(); diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionHook.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionHook.java index b01a1c446..2793e8874 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionHook.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionHook.java @@ -1,9 +1,11 @@ package com.djrapitops.pluginbridge.plan.viaversion; import com.djrapitops.pluginbridge.plan.Hook; +import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.additional.HookHandler; import main.java.com.djrapitops.plan.api.API; +import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException; +import main.java.com.djrapitops.plan.data.additional.HookHandler; import main.java.com.djrapitops.plan.database.databases.SQLDB; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.ViaAPI; @@ -18,12 +20,12 @@ public class ViaVersionHook extends Hook { /** * Hooks the plugin and registers it's PluginData objects. - * + *

* API#addPluginDataSource uses the same method from HookHandler. * * @param hookH HookHandler instance for registering the data sources. - * @see API * @throws NoClassDefFoundError when the plugin class can not be found. + * @see API */ public ViaVersionHook(HookHandler hookH) throws NoClassDefFoundError { super("us.myles.ViaVersion.ViaVersionPlugin"); @@ -33,7 +35,12 @@ public class ViaVersionHook extends Hook { Plan plan = Plan.getInstance(); ViaAPI api = Via.getAPI(); ProtocolTable table = new ProtocolTable((SQLDB) plan.getDB()); - table.createTable(); + try { + table.createTable(); + } catch (DBCreateTableException e) { + Log.toLog(this.getClass().getName(), e); + return; + } PlayerVersionListener l = new PlayerVersionListener(plan, api, table); plan.registerListener(l); hookH.addPluginDataSource(new ViaVersionVersionTable(table)); diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionVersionTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionVersionTable.java index 6719ee7f2..0889b7fb0 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionVersionTable.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/viaversion/ViaVersionVersionTable.java @@ -5,14 +5,15 @@ */ package com.djrapitops.pluginbridge.plan.viaversion; +import main.java.com.djrapitops.plan.data.additional.AnalysisType; +import main.java.com.djrapitops.plan.data.additional.PluginData; +import main.java.com.djrapitops.plan.utilities.html.Html; + import java.io.Serializable; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import java.util.UUID; -import main.java.com.djrapitops.plan.data.additional.AnalysisType; -import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.ui.html.Html; /** * PluginData class for Vault-plugin.