diff --git a/Plan/src/main/java/com/djrapitops/plan/PlanBungee.java b/Plan/src/main/java/com/djrapitops/plan/PlanBungee.java index 753aabe8f..47d22eede 100644 --- a/Plan/src/main/java/com/djrapitops/plan/PlanBungee.java +++ b/Plan/src/main/java/com/djrapitops/plan/PlanBungee.java @@ -52,6 +52,14 @@ public class PlanBungee extends BungeePlugin implements PlanPlugin { @Deprecated private boolean setupAllowed = false; + public static PlanBungee getInstance() { + return (PlanBungee) StaticHolder.getInstance(PlanBungee.class); + } + + public static UUID getServerUUID() { + return getInstance().getServerUuid(); + } + @Override public void onEnable() { super.onEnable(); @@ -99,10 +107,6 @@ public class PlanBungee extends BungeePlugin implements PlanPlugin { registerCommand("planbungee", new PlanBungeeCommand(this)); } - public static PlanBungee getInstance() { - return (PlanBungee) StaticHolder.getInstance(PlanBungee.class); - } - @Override public void onDisable() { system.disable(); @@ -163,10 +167,6 @@ public class PlanBungee extends BungeePlugin implements PlanPlugin { return variableHolder; } - public static UUID getServerUUID() { - return getInstance().getServerUuid(); - } - public UUID getServerUuid() { return serverInfoManager.getServerUUID(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/PlanPlugin.java b/Plan/src/main/java/com/djrapitops/plan/PlanPlugin.java index c3f16e014..1b39877ae 100644 --- a/Plan/src/main/java/com/djrapitops/plan/PlanPlugin.java +++ b/Plan/src/main/java/com/djrapitops/plan/PlanPlugin.java @@ -24,6 +24,19 @@ import java.util.UUID; * @author Rsl1122 */ public interface PlanPlugin extends IPlugin { + static PlanPlugin getInstance() { + boolean bukkitAvailable = Check.isBukkitAvailable(); + boolean bungeeAvailable = Check.isBungeeAvailable(); + if (bukkitAvailable && bungeeAvailable) { + // TODO Test Plugin + } else if (bungeeAvailable) { + return Plan.getInstance(); + } else if (bukkitAvailable) { + return PlanBungee.getInstance(); + } + throw new IllegalAccessError("Plugin instance not available"); + } + @Deprecated Database getDB(); @@ -55,17 +68,4 @@ public interface PlanPlugin extends IPlugin { ColorScheme getColorScheme(); boolean isReloading(); - - static PlanPlugin getInstance() { - boolean bukkitAvailable = Check.isBukkitAvailable(); - boolean bungeeAvailable = Check.isBungeeAvailable(); - if (bukkitAvailable && bungeeAvailable) { - // TODO Test Plugin - } else if (bungeeAvailable) { - return Plan.getInstance(); - } else if (bukkitAvailable) { - return PlanBungee.getInstance(); - } - throw new IllegalAccessError("Plugin instance not available"); - } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java b/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java index 041524144..449122e01 100644 --- a/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java +++ b/Plan/src/main/java/com/djrapitops/plan/command/commands/InspectCommand.java @@ -77,7 +77,7 @@ public class InspectCommand extends SubCommand { } if (CommandUtils.isPlayer(sender) && plugin.getWebServer().isAuthRequired()) { boolean senderHasWebUser = activeDB.check().doesWebUserExists(sender.getName()); - + if (!senderHasWebUser) { sender.sendMessage(ChatColor.YELLOW + "[Plan] You might not have a web user, use /plan register "); } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java b/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java index d5fc03b72..e1bffd464 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/PlayerProfile.java @@ -79,6 +79,57 @@ public class PlayerProfile implements OfflinePlayer { activityIndexCache = new HashMap<>(); } + public static long getPlaytime(Stream s) { + return s.map(Session::getLength) + .mapToLong(i -> i) + .sum(); + } + + public static long getLongestSession(Stream s) { + OptionalLong longestSession = s.map(Session::getLength) + .mapToLong(i -> i) + .max(); + if (longestSession.isPresent()) { + return longestSession.getAsLong(); + } + return -1; + } + + public static long getSessionMedian(Stream s) { + List sessionLenghts = s.map(Session::getLength) + .sorted() + .collect(Collectors.toList()); + if (sessionLenghts.isEmpty()) { + return 0; + } + return sessionLenghts.get(sessionLenghts.size() / 2); + } + + public static long getSessionAverage(Stream s) { + OptionalDouble average = s.map(Session::getLength) + .mapToLong(i -> i) + .average(); + if (average.isPresent()) { + return (long) average.getAsDouble(); + } + return 0L; + } + + public static Stream getPlayerKills(Stream s) { + return s.map(Session::getPlayerKills) + .flatMap(Collection::stream); + } + + public static long getDeathCount(Stream s) { + return s.mapToLong(Session::getDeaths) + .sum(); + } + + public static long getMobKillCount(Stream s) { + return s.mapToLong(Session::getMobKills) + .sum(); + } + // Calculating Getters public ActivityIndex getActivityIndex(long date) { ActivityIndex index = activityIndexCache.get(date); @@ -98,6 +149,10 @@ public class PlayerProfile implements OfflinePlayer { return worldTimesMap.getOrDefault(null, new WorldTimes(new HashMap<>())); } + public void setWorldTimes(Map worldTimes) { + worldTimesMap.putAll(worldTimes); + } + /** * Get world times per server for this player. * @@ -151,12 +206,6 @@ public class PlayerProfile implements OfflinePlayer { return getPlaytime(getSessions(serverUUID).stream()); } - public static long getPlaytime(Stream s) { - return s.map(Session::getLength) - .mapToLong(i -> i) - .sum(); - } - public long getLongestSession() { return getLongestSession(-1, MiscUtils.getTime() + 1L); } @@ -169,16 +218,6 @@ public class PlayerProfile implements OfflinePlayer { return getLongestSession(getSessions(serverUUID).stream()); } - public static long getLongestSession(Stream s) { - OptionalLong longestSession = s.map(Session::getLength) - .mapToLong(i -> i) - .max(); - if (longestSession.isPresent()) { - return longestSession.getAsLong(); - } - return -1; - } - public long getSessionMedian() { return getSessionMedian(-1, MiscUtils.getTime() + 1L); } @@ -191,15 +230,7 @@ public class PlayerProfile implements OfflinePlayer { return getSessionMedian(getSessions(serverUUID).stream()); } - public static long getSessionMedian(Stream s) { - List sessionLenghts = s.map(Session::getLength) - .sorted() - .collect(Collectors.toList()); - if (sessionLenghts.isEmpty()) { - return 0; - } - return sessionLenghts.get(sessionLenghts.size() / 2); - } + // Special Getters public long getSessionAverage() { return getSessionAverage(-1, MiscUtils.getTime() + 1L); @@ -213,22 +244,10 @@ public class PlayerProfile implements OfflinePlayer { return getSessionAverage(getSessions(serverUUID).stream()); } - public static long getSessionAverage(Stream s) { - OptionalDouble average = s.map(Session::getLength) - .mapToLong(i -> i) - .average(); - if (average.isPresent()) { - return (long) average.getAsDouble(); - } - return 0L; - } - public boolean playedBetween(long after, long before) { return getSessions(after, before).findFirst().isPresent(); } - // Special Getters - public Stream getAllSessions() { return sessions.values().stream().flatMap(Collection::stream); } @@ -261,11 +280,6 @@ public class PlayerProfile implements OfflinePlayer { return getPlayerKills(getSessions(serverUUID).stream()); } - public static Stream getPlayerKills(Stream s) { - return s.map(Session::getPlayerKills) - .flatMap(Collection::stream); - } - public long getPlayerKillCount() { return getPlayerKills().count(); } @@ -282,11 +296,6 @@ public class PlayerProfile implements OfflinePlayer { return getDeathCount(getSessions(serverUUID).stream()); } - public static long getDeathCount(Stream s) { - return s.mapToLong(Session::getDeaths) - .sum(); - } - public long getMobKillCount() { return getMobKillCount(getAllSessions()); } @@ -295,11 +304,6 @@ public class PlayerProfile implements OfflinePlayer { return getMobKillCount(getSessions(serverUUID).stream()); } - public static long getMobKillCount(Stream s) { - return s.mapToLong(Session::getMobKills) - .sum(); - } - public long getSessionCount() { return getAllSessions().count(); } @@ -308,12 +312,12 @@ public class PlayerProfile implements OfflinePlayer { return getSessions(serverUUID).size(); } + // Setters & Adders + public long getRegistered(UUID serverUUID) { return registeredMap.getOrDefault(serverUUID, -1L); } - // Setters & Adders - public void bannedOnServer(UUID serverUUID) { bannedOnServers.add(serverUUID); } @@ -334,10 +338,6 @@ public class PlayerProfile implements OfflinePlayer { this.sessions.put(serverUUID, sessions); } - public void setSessions(Map> sessions) { - this.sessions.putAll(sessions); - } - public void addActiveSession(Session activeSession) { UUID serverUUID = PlanPlugin.getInstance().getServerUuid(); List sessions = getSessions(serverUUID); @@ -357,10 +357,6 @@ public class PlayerProfile implements OfflinePlayer { worldTimesMap.put(serverUUID, worldTimes); } - public void setWorldTimes(Map worldTimes) { - worldTimesMap.putAll(worldTimes); - } - public void setTotalWorldTimes(WorldTimes worldTimes) { worldTimesMap.put(null, worldTimes); } @@ -369,38 +365,34 @@ public class PlayerProfile implements OfflinePlayer { registeredMap.put(serverUUID, registered); } + public int getTimesKicked() { + return timesKicked; + } + // Default Setters - public void setActions(List actions) { - this.actions = actions; - } - - public void setNicknames(Map> nicknames) { - this.nicknames = nicknames; - } - - public void setGeoInformation(List geoInformation) { - this.geoInformation = geoInformation; - } - public void setTimesKicked(int timesKicked) { this.timesKicked = timesKicked; } - // Default Getters - - public int getTimesKicked() { - return timesKicked; - } - public Map> getNicknames() { return nicknames; } + public void setNicknames(Map> nicknames) { + this.nicknames = nicknames; + } + public List getGeoInformation() { return geoInformation; } + // Default Getters + + public void setGeoInformation(List geoInformation) { + this.geoInformation = geoInformation; + } + public UUID getUuid() { return uuid; } @@ -425,10 +417,18 @@ public class PlayerProfile implements OfflinePlayer { return sessions; } + public void setSessions(Map> sessions) { + this.sessions.putAll(sessions); + } + public List getActions() { return actions; } + public void setActions(List actions) { + this.actions = actions; + } + public Map getPluginReplaceMap() { return pluginReplaceMap; } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/ServerProfile.java b/Plan/src/main/java/com/djrapitops/plan/data/ServerProfile.java index d7856667b..99ef74520 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/ServerProfile.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/ServerProfile.java @@ -64,6 +64,125 @@ public class ServerProfile { lastPeakPlayers = -1; } + public static long getLowSpikeCount(List tpsData) { + int mediumThreshold = Settings.THEME_GRAPH_TPS_THRESHOLD_MED.getNumber(); + + boolean wasLow = false; + long spikeCount = 0L; + + for (TPS tpsObj : tpsData) { + double tps = tpsObj.getTicksPerSecond(); + if (tps < mediumThreshold) { + if (!wasLow) { + spikeCount++; + wasLow = true; + } + } else { + wasLow = false; + } + } + + return spikeCount; + } + + public static List getPlayerKills(List s) { + List kills = new ArrayList<>(); + for (Session session : s) { + kills.addAll(session.getPlayerKills()); + } + return kills; + } + + public static long getMobKillCount(List s) { + long total = 0; + for (Session session : s) { + total += session.getMobKills(); + } + return total; + } + + public static long getDeathCount(List s) { + long total = 0; + for (Session session : s) { + total += session.getDeaths(); + } + return total; + } + + public static int getPlayersOnline() { + if (Check.isBungeeAvailable()) { + return PlanBungee.getInstance().getProxy().getOnlineCount(); + } else { + return Plan.getInstance().getServer().getOnlinePlayers().size(); + } + } + + public static int getPlayersMax() { + return PlanPlugin.getInstance().getVariable().getMaxPlayers(); + } + + public static long serverDownTime(List tpsData) { + long lastDate = -1; + long downTime = 0; + for (TPS tps : tpsData) { + long date = tps.getDate(); + if (lastDate == -1) { + lastDate = date; + continue; + } + + long diff = date - lastDate; + if (diff > TimeAmount.MINUTE.ms() * 3L) { + downTime += diff; + } + lastDate = date; + } + + return downTime; + } + + public static long serverIdleTime(List tpsData) { + long lastDate = -1; + int lastPlayers = 0; + long idleTime = 0; + for (TPS tps : tpsData) { + long date = tps.getDate(); + int players = tps.getPlayers(); + if (lastDate == -1) { + lastDate = date; + lastPlayers = players; + continue; + } + + long diff = date - lastDate; + if (lastPlayers == 0 && players == 0) { + idleTime += diff; + } + + lastDate = date; + lastPlayers = players; + } + + return idleTime; + } + + public static double aboveLowThreshold(List tpsData) { + if (tpsData.isEmpty()) { + return 1; + } + + int threshold = Settings.THEME_GRAPH_TPS_THRESHOLD_MED.getNumber(); + + long count = 0; + for (TPS tps : tpsData) { + if (tps.getTicksPerSecond() >= threshold) { + count++; + } + } + + return count * 1.0 / tpsData.size(); + } + public List getPlayers() { return players; } @@ -88,27 +207,6 @@ public class ServerProfile { this.commandUsage = commandUsage; } - public static long getLowSpikeCount(List tpsData) { - int mediumThreshold = Settings.THEME_GRAPH_TPS_THRESHOLD_MED.getNumber(); - - boolean wasLow = false; - long spikeCount = 0L; - - for (TPS tpsObj : tpsData) { - double tps = tpsObj.getTicksPerSecond(); - if (tps < mediumThreshold) { - if (!wasLow) { - spikeCount++; - wasLow = true; - } - } else { - wasLow = false; - } - } - - return spikeCount; - } - public double getAverageTPS(long after, long before) { OptionalDouble average = getTPSData(after, before) .mapToDouble(TPS::getTicksPerSecond) @@ -200,6 +298,8 @@ public class ServerProfile { .collect(Collectors.toList()); } + // Default setters & getters + public long getTotalPlaytime() { return serverWorldtimes.getTotal(); } @@ -220,32 +320,6 @@ public class ServerProfile { return players.stream().map(p -> p.getSessions(serverUUID)).flatMap(Collection::stream).collect(Collectors.toList()); } - public static List getPlayerKills(List s) { - List kills = new ArrayList<>(); - for (Session session : s) { - kills.addAll(session.getPlayerKills()); - } - return kills; - } - - public static long getMobKillCount(List s) { - long total = 0; - for (Session session : s) { - total += session.getMobKills(); - } - return total; - } - - public static long getDeathCount(List s) { - long total = 0; - for (Session session : s) { - total += session.getDeaths(); - } - return total; - } - - // Default setters & getters - public WorldTimes getServerWorldtimes() { return serverWorldtimes; } @@ -286,18 +360,6 @@ public class ServerProfile { this.allTimePeakPlayers = allTimePeakPlayers; } - public static int getPlayersOnline() { - if (Check.isBungeeAvailable()) { - return PlanBungee.getInstance().getProxy().getOnlineCount(); - } else { - return Plan.getInstance().getServer().getOnlinePlayers().size(); - } - } - - public static int getPlayersMax() { - return PlanPlugin.getInstance().getVariable().getMaxPlayers(); - } - public Stream getOps() { return players.stream().filter(PlayerProfile::isOp); } @@ -316,74 +378,12 @@ public class ServerProfile { .collect(Collectors.toList())); } - public static long serverDownTime(List tpsData) { - long lastDate = -1; - long downTime = 0; - for (TPS tps : tpsData) { - long date = tps.getDate(); - if (lastDate == -1) { - lastDate = date; - continue; - } - - long diff = date - lastDate; - if (diff > TimeAmount.MINUTE.ms() * 3L) { - downTime += diff; - } - lastDate = date; - } - - return downTime; - } - public long serverIdleTime(long after, long before) { return serverIdleTime(getTPSData(after, before) .sorted(new TPSComparator()) .collect(Collectors.toList())); } - public static long serverIdleTime(List tpsData) { - long lastDate = -1; - int lastPlayers = 0; - long idleTime = 0; - for (TPS tps : tpsData) { - long date = tps.getDate(); - int players = tps.getPlayers(); - if (lastDate == -1) { - lastDate = date; - lastPlayers = players; - continue; - } - - long diff = date - lastDate; - if (lastPlayers == 0 && players == 0) { - idleTime += diff; - } - - lastDate = date; - lastPlayers = players; - } - - return idleTime; - } - - public static double aboveLowThreshold(List tpsData) { - if (tpsData.isEmpty()) { - return 1; - } - - int threshold = Settings.THEME_GRAPH_TPS_THRESHOLD_MED.getNumber(); - - long count = 0; - for (TPS tps : tpsData) { - if (tps.getTicksPerSecond() >= threshold) { - count++; - } - } - - return count * 1.0 / tpsData.size(); - } - public PlayerProfile getPlayer(UUID uuid) { if (playerMap == null) { playerMap = players.stream().collect(Collectors.toMap(PlayerProfile::getUuid, Function.identity())); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/element/ActivityIndex.java b/Plan/src/main/java/com/djrapitops/plan/data/element/ActivityIndex.java index d79102c61..e719e86d3 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/element/ActivityIndex.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/element/ActivityIndex.java @@ -11,16 +11,16 @@ import java.util.stream.Collectors; public class ActivityIndex { - private static long loadSetting(long value) { - return value < 0 ? 1 : value; - } - private final double value; public ActivityIndex(PlayerProfile player, long date) { value = calculate(player, date); } + private static long loadSetting(long value) { + return value < 0 ? 1 : value; + } + private double calculate(PlayerProfile player, long date) { long week = TimeAmount.WEEK.ms(); long weekAgo = date - week; diff --git a/Plan/src/main/java/com/djrapitops/plan/data/element/HealthNotes.java b/Plan/src/main/java/com/djrapitops/plan/data/element/HealthNotes.java index 795959640..e66d5be30 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/element/HealthNotes.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/element/HealthNotes.java @@ -26,13 +26,12 @@ import java.util.stream.Collectors; public class HealthNotes { private final List healthNotes; - private double serverHealth; - private final AnalysisData analysisData; private final TreeMap>> activityData; private final List tpsDataMonth; private final long now; private final long fourWeeksAgo; + private double serverHealth; public HealthNotes(AnalysisData analysisData, TreeMap>> activityData, List tpsDataMonth, long now) { this.healthNotes = new ArrayList<>(); diff --git a/Plan/src/main/java/com/djrapitops/plan/settings/ServerSpecificSettings.java b/Plan/src/main/java/com/djrapitops/plan/settings/ServerSpecificSettings.java index 361bd1d6c..3b7760a9f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/settings/ServerSpecificSettings.java +++ b/Plan/src/main/java/com/djrapitops/plan/settings/ServerSpecificSettings.java @@ -25,21 +25,6 @@ import java.util.UUID; */ public class ServerSpecificSettings { - public void addOriginalBukkitSettings(PlanBungee plugin, UUID serverUUID, Map settings) { - try { - Config config = plugin.getMainConfig(); - if (!Verify.isEmpty(config.getString("Servers." + serverUUID + ".ServerName"))) { - return; - } - for (Map.Entry entry : settings.entrySet()) { - config.set("Servers." + serverUUID + "." + entry.getKey(), entry.getValue()); - } - config.save(); - } catch (IOException e) { - Log.toLog(this.getClass().getName(), e); - } - } - public static void updateSettings(Plan plugin, Map settings) { Log.debug("Checking new settings.."); Config config = plugin.getMainConfig(); @@ -92,6 +77,21 @@ public class ServerSpecificSettings { return value; } + public void addOriginalBukkitSettings(PlanBungee plugin, UUID serverUUID, Map settings) { + try { + Config config = plugin.getMainConfig(); + if (!Verify.isEmpty(config.getString("Servers." + serverUUID + ".ServerName"))) { + return; + } + for (Map.Entry entry : settings.entrySet()) { + config.set("Servers." + serverUUID + "." + entry.getKey(), entry.getValue()); + } + config.save(); + } catch (IOException e) { + Log.toLog(this.getClass().getName(), e); + } + } + private String getPath(UUID serverUUID, Settings setting) { String path = "Servers." + serverUUID; switch (setting) { diff --git a/Plan/src/main/java/com/djrapitops/plan/settings/locale/Locale.java b/Plan/src/main/java/com/djrapitops/plan/settings/locale/Locale.java index 3392889e8..e79fd1a93 100644 --- a/Plan/src/main/java/com/djrapitops/plan/settings/locale/Locale.java +++ b/Plan/src/main/java/com/djrapitops/plan/settings/locale/Locale.java @@ -44,10 +44,6 @@ public class Locale { messages = new EnumMap<>(Msg.class); } - public void unload() { - messages.clear(); - } - public static Locale getInstance() { Locale locale = ConfigSystem.getInstance().getLocale(); NullCheck.check(locale, new IllegalStateException("Locale has not been initialized.")); @@ -58,6 +54,10 @@ public class Locale { return getInstance().getMessage(msg); } + public void unload() { + messages.clear(); + } + public void loadLocale() { String locale = Settings.LOCALE.toString().toUpperCase(); Benchmark.start("Initializing locale"); diff --git a/Plan/src/main/java/com/djrapitops/plan/settings/theme/Theme.java b/Plan/src/main/java/com/djrapitops/plan/settings/theme/Theme.java index 05d2bacc2..5b1cc3081 100644 --- a/Plan/src/main/java/com/djrapitops/plan/settings/theme/Theme.java +++ b/Plan/src/main/java/com/djrapitops/plan/settings/theme/Theme.java @@ -33,6 +33,14 @@ public class Theme implements SubSystem { return themeSystem; } + public static String getValue(ThemeVal variable) { + return getInstance().getThemeValue(variable); + } + + public static String replaceColors(String resourceString) { + return getInstance().replaceThemeColors(resourceString); + } + @Override public void enable() throws EnableException { String themeName = Settings.THEME_BASE.toString(); @@ -95,12 +103,4 @@ public class Theme implements SubSystem { public String getThemeValue(ThemeVal color) { return config.getString(color.getThemePath()); } - - public static String getValue(ThemeVal variable) { - return getInstance().getThemeValue(variable); - } - - public static String replaceColors(String resourceString) { - return getInstance().replaceThemeColors(resourceString); - } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/PlanSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/PlanSystem.java index 9f5346436..0b1025b16 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/PlanSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/PlanSystem.java @@ -44,6 +44,19 @@ public abstract class PlanSystem implements SubSystem { webServerSystem = new WebServerSystem(); } + public static PlanSystem getInstance() { + boolean bukkitAvailable = Check.isBukkitAvailable(); + boolean bungeeAvailable = Check.isBungeeAvailable(); + if (bukkitAvailable && bungeeAvailable) { + // TODO test system. + } else if (bungeeAvailable) { + return BungeeSystem.getInstance(); + } else { + return BukkitSystem.getInstance(); + } + throw new IllegalAccessError("PlanSystem is not available on this platform."); + } + @Override public void enable() throws EnableException { checkSubSystemInitialization(); @@ -93,19 +106,6 @@ public abstract class PlanSystem implements SubSystem { } } - public static PlanSystem getInstance() { - boolean bukkitAvailable = Check.isBukkitAvailable(); - boolean bungeeAvailable = Check.isBungeeAvailable(); - if (bukkitAvailable && bungeeAvailable) { - // TODO test system. - } else if (bungeeAvailable) { - return BungeeSystem.getInstance(); - } else { - return BukkitSystem.getInstance(); - } - throw new IllegalAccessError("PlanSystem is not available on this platform."); - } - // Accessor methods. public ProcessingQueue getProcessingQueue() { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/BungeeDBSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/database/BungeeDBSystem.java index 0e205fab8..cecdffae2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/BungeeDBSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/BungeeDBSystem.java @@ -13,7 +13,7 @@ import com.djrapitops.plan.system.database.databases.sql.MySQLDB; * @author Rsl1122 */ public class BungeeDBSystem extends DBSystem { - + @Override protected void initDatabase() throws DBInitException { db = new MySQLDB(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/listeners/ListenerSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/listeners/ListenerSystem.java index 486dfe459..e5c22ab80 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/listeners/ListenerSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/listeners/ListenerSystem.java @@ -12,7 +12,7 @@ public abstract class ListenerSystem implements SubSystem { NullCheck.check(listenerSystem, new IllegalStateException("Listener system was not initialized.")); return listenerSystem; } - + @Override public void enable() { Benchmark.start("Register Listeners"); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java b/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java index eaa6b9f34..a90acb156 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java @@ -4,8 +4,8 @@ import com.djrapitops.plan.Plan; import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.system.processing.processors.info.NetworkPageUpdateProcessor; import com.djrapitops.plan.system.processing.processors.player.*; -import com.djrapitops.plan.systems.cache.DataCache; import com.djrapitops.plan.system.tasks.TaskSystem; +import com.djrapitops.plan.systems.cache.DataCache; import com.djrapitops.plan.utilities.MiscUtils; import com.djrapitops.plugin.api.systems.NotificationCenter; import com.djrapitops.plugin.api.utility.log.Log; @@ -43,6 +43,10 @@ public class PlayerOnlineListener implements Listener { cache = plugin.getDataCache(); } + public static void setCountKicks(boolean value) { + countKicks = value; + } + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerLogin(PlayerLoginEvent event) { try { @@ -147,8 +151,4 @@ public class PlayerOnlineListener implements Listener { Log.toLog(this.getClass(), e); } } - - public static void setCountKicks(boolean value) { - countKicks = value; - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/Processor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/Processor.java index 15ececd2a..8a93a26ac 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/Processor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/Processor.java @@ -18,6 +18,13 @@ public abstract class Processor { this.object = object; } + public static void queue(Processor... processors) { + ProcessingQueue processingQueue = ProcessingQueue.getInstance(); + for (Processor processor : processors) { + processingQueue.queue(processor); + } + } + public abstract void process(); public T getObject() { @@ -27,11 +34,4 @@ public abstract class Processor { public void queue() { queue(this); } - - public static void queue(Processor... processors) { - ProcessingQueue processingQueue = ProcessingQueue.getInstance(); - for (Processor processor : processors) { - processingQueue.queue(processor); - } - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/settings/Settings.java b/Plan/src/main/java/com/djrapitops/plan/system/settings/Settings.java index 0b38a1eee..5896c2b57 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/settings/Settings.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/settings/Settings.java @@ -101,6 +101,14 @@ public enum Settings { this.configPath = path; } + public static ServerSpecificSettings serverSpecific() { + if (!Check.isBungeeAvailable()) { + throw new IllegalStateException("Not supposed to call this method on Bukkit"); + } + + return serverSpecificSettings; + } + /** * If the settings is a boolean, this method should be used. * @@ -157,12 +165,4 @@ public enum Settings { private Config getConfig() { return ConfigSystem.getInstance().getConfig(); } - - public static ServerSpecificSettings serverSpecific() { - if (!Check.isBungeeAvailable()) { - throw new IllegalStateException("Not supposed to call this method on Bukkit"); - } - - return serverSpecificSettings; - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/tasks/BukkitTaskSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/tasks/BukkitTaskSystem.java index b784b7697..abc8f889c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/tasks/BukkitTaskSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/tasks/BukkitTaskSystem.java @@ -22,6 +22,8 @@ import com.djrapitops.plugin.task.ITask; */ public class BukkitTaskSystem extends TaskSystem { + private ITask bootAnalysisTask; + public BukkitTaskSystem(Plan plugin) { tpsCountTimer = Check.isPaperAvailable() ? new PaperTPSCountTimer(plugin) @@ -29,8 +31,6 @@ public class BukkitTaskSystem extends TaskSystem { } - private ITask bootAnalysisTask; - @Override public void enable() { registerTasks(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/tasks/TPSCountTimer.java b/Plan/src/main/java/com/djrapitops/plan/system/tasks/TPSCountTimer.java index efd801553..d1d0b7b02 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/tasks/TPSCountTimer.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/tasks/TPSCountTimer.java @@ -34,7 +34,7 @@ public abstract class TPSCountTimer extends AbsRunnable { long now = MiscUtils.getTime(); addNewTPSEntry(nanoTime, now); - + if (history.size() >= 60) { plugin.addToProcessQueue(new TPSInsertProcessor(new ArrayList<>(history))); history.clear(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java index 488dcc1b7..74498d6ef 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java @@ -34,6 +34,10 @@ public class VersionCheckSystem implements SubSystem { return versionCheckSystem; } + public static boolean isNewVersionAvailable() { + return getInstance().newVersionAvailable; + } + @Override public void enable() { checkForNewVersion(); @@ -63,8 +67,4 @@ public class VersionCheckSystem implements SubSystem { public void disable() { /* Does not need to be closed */ } - - public static boolean isNewVersionAvailable() { - return getInstance().newVersionAvailable; - } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/Request.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/Request.java index c2ffff451..3a03c2c3b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/Request.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/Request.java @@ -18,11 +18,10 @@ import java.util.Optional; * @author Rsl1122 */ public class Request { - private Authentication auth; private final String requestMethod; private final String target; - private final HttpExchange exchange; + private Authentication auth; public Request(HttpExchange exchange) { this.requestMethod = exchange.getRequestMethod(); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/WebServerSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/WebServerSystem.java index 0432766c0..6e7d72e3c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/WebServerSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/WebServerSystem.java @@ -27,6 +27,11 @@ public class WebServerSystem implements SubSystem { return PlanSystem.getInstance().getWebServerSystem(); } + public static boolean isWebServerEnabled() { + WebServer webServer = getInstance().webServer; + return webServer != null && webServer.isEnabled(); + } + @Override public void enable() throws EnableException { webServer.initServer(); @@ -44,11 +49,6 @@ public class WebServerSystem implements SubSystem { webServer.stop(); } - public static boolean isWebServerEnabled() { - WebServer webServer = getInstance().webServer; - return webServer != null && webServer.isEnabled(); - } - public WebServer getWebServer() { return webServer; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java index 5c00e6438..01ffa16e8 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java @@ -35,6 +35,10 @@ public abstract class Response { return header; } + public void setHeader(String header) { + this.header = header; + } + public String getResponse() { return header + "\r\n" + "Content-Type: " + type + ";\r\n" @@ -51,10 +55,6 @@ public abstract class Response { this.content = content; } - public void setHeader(String header) { - this.header = header; - } - public int getCode() { return header == null ? 500 : Integer.parseInt(header.split(" ")[1]); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java index 7a548b675..eebc71d94 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java @@ -38,6 +38,10 @@ public class InspectPageResponse extends Response { super.setContent(response.getContent()); } + public static InspectPageResponse copyOf(InspectPageResponse response) { + return new InspectPageResponse(response); + } + public void setInspectPagePluginsTab(String[] inspectPagePluginsTab) { Map replaceMap = new HashMap<>(); replaceMap.put("navPluginsTabs", inspectPagePluginsTab[0]); @@ -45,8 +49,4 @@ public class InspectPageResponse extends Response { setContent(StrSubstitutor.replace(getContent(), replaceMap)); } - - public static InspectPageResponse copyOf(InspectPageResponse response) { - return new InspectPageResponse(response); - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPI.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPI.java index fc2205898..fb792b562 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPI.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPI.java @@ -35,12 +35,36 @@ import java.util.stream.Collectors; */ public abstract class WebAPI { + private static TrustManager[] trustAllCerts = new TrustManager[]{ + new X509TrustManager() { + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return null; + } + + public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) { + //No need to implement. + } + + public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) { + //No need to implement. + } + } + }; private Map variables; + public WebAPI() { this.variables = new HashMap<>(); } + public static Map readVariables(String requestBody) { + String[] variables = requestBody.split(";&variable;"); + + return Arrays.stream(variables) + .map(variable -> variable.split("=", 2)) + .filter(splitVariables -> splitVariables.length == 2) + .collect(Collectors.toMap(splitVariables -> splitVariables[0], splitVariables -> splitVariables[1], (a, b) -> b)); + } public Response processRequest(PlanPlugin plugin, Map variables) { String sender = variables.get("sender"); @@ -149,22 +173,6 @@ public abstract class WebAPI { return sc.getSocketFactory(); } - private static TrustManager[] trustAllCerts = new TrustManager[]{ - new X509TrustManager() { - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return null; - } - - public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) { - //No need to implement. - } - - public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) { - //No need to implement. - } - } - }; - protected Response success() { return ResponseCache.loadResponse(PageId.TRUE.id(), SuccessResponse::new); } @@ -190,13 +198,4 @@ public abstract class WebAPI { } return parameters.toString(); } - - public static Map readVariables(String requestBody) { - String[] variables = requestBody.split(";&variable;"); - - return Arrays.stream(variables) - .map(variable -> variable.split("=", 2)) - .filter(splitVariables -> splitVariables.length == 2) - .collect(Collectors.toMap(splitVariables -> splitVariables[0], splitVariables -> splitVariables[1], (a, b) -> b)); - } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPIManager.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPIManager.java index e9974d4da..f61f6eef7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPIManager.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/webapi/WebAPIManager.java @@ -15,8 +15,8 @@ import java.util.*; @Deprecated public class WebAPIManager extends TreePageHandler { - private final Map registry; private static final Set accessKeys = new HashSet<>(); + private final Map registry; /** * Constructor used to hide the public constructor diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/cache/GeolocationCache.java b/Plan/src/main/java/com/djrapitops/plan/systems/cache/GeolocationCache.java index 4a642989d..4c99ce4dd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/cache/GeolocationCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/cache/GeolocationCache.java @@ -30,9 +30,8 @@ import java.util.zip.GZIPInputStream; */ public class GeolocationCache { - private static File geolocationDB = new File(PlanPlugin.getInstance().getDataFolder(), "GeoIP.dat"); - private static final Map geolocationCache = new HashMap<>(); + private static File geolocationDB = new File(PlanPlugin.getInstance().getDataFolder(), "GeoIP.dat"); /** * Constructor used to hide the public constructor diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/cache/SessionCache.java b/Plan/src/main/java/com/djrapitops/plan/systems/cache/SessionCache.java index f4de02f55..db4b76a2b 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/cache/SessionCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/cache/SessionCache.java @@ -31,6 +31,21 @@ public class SessionCache { this.plugin = plugin; } + /** + * Used to get the Map of active sessions. + *

+ * Used for testing. + * + * @return key:value UUID:Session + */ + public static Map getActiveSessions() { + return activeSessions; + } + + public static void clear() { + activeSessions.clear(); + } + public void cacheSession(UUID uuid, Session session) { activeSessions.put(uuid, session); plugin.addToProcessQueue(new Processor(plugin) { @@ -76,19 +91,4 @@ public class SessionCache { } return Optional.empty(); } - - /** - * Used to get the Map of active sessions. - *

- * Used for testing. - * - * @return key:value UUID:Session - */ - public static Map getActiveSessions() { - return activeSessions; - } - - public static void clear() { - activeSessions.clear(); - } } diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/info/BukkitInformationManager.java b/Plan/src/main/java/com/djrapitops/plan/systems/info/BukkitInformationManager.java index 842556d5a..3e0d15e6c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/info/BukkitInformationManager.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/info/BukkitInformationManager.java @@ -62,13 +62,11 @@ public class BukkitInformationManager extends InformationManager { private final Plan plugin; private final DataCache dataCache; private final Analysis analysis; - + private final Map pluginsTabContents; private AnalysisData analysisData; private String analysisPluginsTab; private Long refreshDate; - private final Map pluginsTabContents; - public BukkitInformationManager(Plan plugin) { this.plugin = plugin; dataCache = new DataCache(plugin); diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/info/BungeeInformationManager.java b/Plan/src/main/java/com/djrapitops/plan/systems/info/BungeeInformationManager.java index 815572693..e9e1dc7f7 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/info/BungeeInformationManager.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/info/BungeeInformationManager.java @@ -48,11 +48,10 @@ import java.util.stream.Collectors; public class BungeeInformationManager extends InformationManager { private final PlanBungee plugin; - private Map bukkitServers; - private final Map networkPageContent; private final Map> pluginsTabContent; private final BungeeServerInfoManager serverInfoManager; + private Map bukkitServers; public BungeeInformationManager(PlanBungee plugin) { usingAnotherWebServer = false; diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BukkitServerInfoManager.java b/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BukkitServerInfoManager.java index fa8b6ad5e..10773aa2c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BukkitServerInfoManager.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BukkitServerInfoManager.java @@ -29,9 +29,9 @@ import java.util.UUID; public class BukkitServerInfoManager { private final Plan plugin; + private final ServerTable serverTable; private ServerInfo serverInfo; private ServerInfoFile serverInfoFile; - private final ServerTable serverTable; public BukkitServerInfoManager(Plan plugin) throws EnableException { this.plugin = plugin; diff --git a/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BungeeServerInfoManager.java b/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BungeeServerInfoManager.java index c0ad885dd..137a43962 100644 --- a/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BungeeServerInfoManager.java +++ b/Plan/src/main/java/com/djrapitops/plan/systems/info/server/BungeeServerInfoManager.java @@ -30,11 +30,10 @@ import java.util.stream.Collectors; public class BungeeServerInfoManager { private final PlanBungee plugin; - private ServerInfo serverInfo; private final Database db; - private final Map bukkitServers; private final Set onlineServers; + private ServerInfo serverInfo; private ServerTable serverTable; public BungeeServerInfoManager(PlanBungee plugin) { diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java index 40e1c1d51..87ab55e38 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/analysis/Analysis.java @@ -33,9 +33,9 @@ import java.util.stream.Collectors; */ public class Analysis { + private static ServerProfile serverProfile; private final Plan plugin; private int taskId = -1; - private static ServerProfile serverProfile; /** * Class Constructor. @@ -46,6 +46,15 @@ public class Analysis { this.plugin = plugin; } + /** + * Only available during Analysis. + * + * @return ServerProfile being analyzed or null if analysis is not being run. + */ + public static ServerProfile getServerProfile() { + return serverProfile; + } + /** * Analyzes the data of all offline players on the server. * @@ -221,13 +230,4 @@ public class Analysis { public boolean isAnalysisBeingRun() { return taskId != -1; } - - /** - * Only available during Analysis. - * - * @return ServerProfile being analyzed or null if analysis is not being run. - */ - public static ServerProfile getServerProfile() { - return serverProfile; - } }