From 599a688545e68c0bf129dd66e1cdf43533fe94d6 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sun, 24 Jun 2018 13:10:41 +0300 Subject: [PATCH] Fixed a few mistakes --- .../store/containers/NetworkContainer.java | 12 ++- .../store/mutators/PerServerDataMutator.java | 16 ++-- .../data/store/mutators/PlayersMutator.java | 4 + .../data/store/mutators/SessionsMutator.java | 8 +- .../plan/data/store/mutators/TPSMutator.java | 19 +++-- .../databases/sql/operation/SQLFetchOps.java | 76 ++++++++++--------- .../databases/sql/tables/NicknamesTable.java | 2 +- .../database/databases/sql/tables/Table.java | 8 +- .../webserver/pages/parsing/NetworkPage.java | 4 +- .../system/webserver/pages/parsing/Page.java | 5 +- .../utilities/html/tables/PlayersTable.java | 2 +- 11 files changed, 90 insertions(+), 66 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/data/store/containers/NetworkContainer.java b/Plan/src/main/java/com/djrapitops/plan/data/store/containers/NetworkContainer.java index 9e9523a39..0d169ecd0 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/store/containers/NetworkContainer.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/store/containers/NetworkContainer.java @@ -15,6 +15,7 @@ import com.djrapitops.plan.system.settings.theme.ThemeVal; import com.djrapitops.plan.utilities.MiscUtils; import com.djrapitops.plan.utilities.html.graphs.WorldMap; import com.djrapitops.plan.utilities.html.graphs.line.OnlineActivityGraph; +import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.api.utility.log.Log; import java.util.HashMap; @@ -67,6 +68,9 @@ public class NetworkContainer extends DataContainer { private void addConstants() { long now = System.currentTimeMillis(); putRawData(NetworkKeys.REFRESH_TIME, now); + putRawData(NetworkKeys.REFRESH_TIME_DAY_AGO, getUnsafe(NetworkKeys.REFRESH_TIME) - TimeAmount.DAY.ms()); + putRawData(NetworkKeys.REFRESH_TIME_WEEK_AGO, getUnsafe(NetworkKeys.REFRESH_TIME) - TimeAmount.WEEK.ms()); + putRawData(NetworkKeys.REFRESH_TIME_MONTH_AGO, getUnsafe(NetworkKeys.REFRESH_TIME) - TimeAmount.MONTH.ms()); putSupplier(NetworkKeys.REFRESH_TIME_F, () -> Formatters.second().apply(() -> getUnsafe(NetworkKeys.REFRESH_TIME))); putRawData(NetworkKeys.VERSION, PlanPlugin.getInstance().getVersion()); @@ -80,7 +84,7 @@ public class NetworkContainer extends DataContainer { } private void addPlayerInformation() { - putSupplier(NetworkKeys.PLAYERS_TOTAL, () -> bungeeContainer.getValue(ServerKeys.PLAYER_COUNT).orElse(-1)); + putSupplier(NetworkKeys.PLAYERS_TOTAL, () -> getUnsafe(NetworkKeys.PLAYERS_MUTATOR).count()); putSupplier(NetworkKeys.WORLD_MAP_SERIES, () -> new WorldMap(PlayersMutator.forContainer(bungeeContainer)).toHighChartsSeries() ); @@ -120,13 +124,13 @@ public class NetworkContainer extends DataContainer { .filterRegisteredBetween(getUnsafe(NetworkKeys.REFRESH_TIME_MONTH_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) ); putSupplier(uniqueDay, () -> getUnsafe(NetworkKeys.PLAYERS_MUTATOR) - .filterRegisteredBetween(getUnsafe(NetworkKeys.REFRESH_TIME_DAY_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) + .filterPlayedBetween(getUnsafe(NetworkKeys.REFRESH_TIME_DAY_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) ); putSupplier(uniqueWeek, () -> getUnsafe(NetworkKeys.PLAYERS_MUTATOR) - .filterRegisteredBetween(getUnsafe(NetworkKeys.REFRESH_TIME_WEEK_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) + .filterPlayedBetween(getUnsafe(NetworkKeys.REFRESH_TIME_WEEK_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) ); putSupplier(uniqueMonth, () -> getUnsafe(NetworkKeys.PLAYERS_MUTATOR) - .filterRegisteredBetween(getUnsafe(NetworkKeys.REFRESH_TIME_MONTH_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) + .filterPlayedBetween(getUnsafe(NetworkKeys.REFRESH_TIME_MONTH_AGO), getUnsafe(NetworkKeys.REFRESH_TIME)) ); putSupplier(NetworkKeys.PLAYERS_NEW_DAY, () -> getUnsafe(newDay).count()); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PerServerDataMutator.java b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PerServerDataMutator.java index 6bf05305e..77b34813e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PerServerDataMutator.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PerServerDataMutator.java @@ -29,6 +29,7 @@ public class PerServerDataMutator { public List flatMapSessions() { return data.values().stream() + .filter(container -> container.supports(PerServerKeys.SESSIONS)) .map(container -> container.getUnsafe(PerServerKeys.SESSIONS)) .flatMap(Collection::stream) .collect(Collectors.toList()); @@ -38,8 +39,10 @@ public class PerServerDataMutator { WorldTimes total = new WorldTimes(new HashMap<>()); for (DataContainer container : data.values()) { - WorldTimes worldTimes = container.getUnsafe(PerServerKeys.WORLD_TIMES); - total.add(worldTimes); + if (container.supports(PerServerKeys.WORLD_TIMES)) { + WorldTimes worldTimes = container.getUnsafe(PerServerKeys.WORLD_TIMES); + total.add(worldTimes); + } } return total; @@ -48,7 +51,8 @@ public class PerServerDataMutator { public Map worldTimesPerServer() { Map timesMap = new HashMap<>(); for (Map.Entry entry : data.entrySet()) { - timesMap.put(entry.getKey(), entry.getValue().getUnsafe(PerServerKeys.WORLD_TIMES)); + DataContainer container = entry.getValue(); + timesMap.put(entry.getKey(), container.getValue(PerServerKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>()))); } return timesMap; } @@ -71,14 +75,14 @@ public class PerServerDataMutator { public Map> sessionsPerServer() { Map> sessionMap = new HashMap<>(); for (Map.Entry entry : data.entrySet()) { - sessionMap.put(entry.getKey(), entry.getValue().getUnsafe(PerServerKeys.SESSIONS)); + sessionMap.put(entry.getKey(), entry.getValue().getValue(PerServerKeys.SESSIONS).orElse(new ArrayList<>())); } return sessionMap; } public boolean isBanned() { for (DataContainer container : data.values()) { - if (container.getUnsafe(PlayerKeys.BANNED)) { + if (container.getValue(PlayerKeys.BANNED).orElse(false)) { return true; } } @@ -87,7 +91,7 @@ public class PerServerDataMutator { public boolean isOperator() { for (DataContainer container : data.values()) { - if (container.getUnsafe(PlayerKeys.OPERATOR)) { + if (container.getValue(PlayerKeys.OPERATOR).orElse(false)) { return true; } } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PlayersMutator.java b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PlayersMutator.java index bc91859f9..46fd392cd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PlayersMutator.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/PlayersMutator.java @@ -10,6 +10,7 @@ import com.djrapitops.plan.data.store.keys.SessionKeys; import com.djrapitops.plan.data.store.mutators.formatting.Formatters; import com.djrapitops.plan.utilities.analysis.AnalysisUtils; import com.djrapitops.plugin.api.TimeAmount; +import com.djrapitops.plugin.api.utility.log.Log; import java.util.*; import java.util.function.Function; @@ -33,6 +34,9 @@ public class PlayersMutator { } public static PlayersMutator forContainer(DataContainer container) { + if (!container.supports(ServerKeys.PLAYERS)) { + Log.warn(container.getClass().getSimpleName() + " does not support PLAYERS key."); + } return new PlayersMutator(container.getValue(ServerKeys.PLAYERS).orElse(new ArrayList<>())); } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/SessionsMutator.java b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/SessionsMutator.java index b187b2a71..3b859d88f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/SessionsMutator.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/SessionsMutator.java @@ -7,6 +7,7 @@ import com.djrapitops.plan.data.store.keys.CommonKeys; import com.djrapitops.plan.data.store.keys.SessionKeys; import com.djrapitops.plan.data.store.mutators.formatting.Formatters; import com.djrapitops.plan.data.time.WorldTimes; +import com.djrapitops.plugin.api.utility.log.Log; import java.util.*; import java.util.function.Function; @@ -24,8 +25,11 @@ public class SessionsMutator { private List sessions; - public static SessionsMutator forContainer(DataContainer dataContainer) { - return new SessionsMutator(dataContainer.getValue(CommonKeys.SESSIONS).orElse(new ArrayList<>())); + public static SessionsMutator forContainer(DataContainer container) { + if (!container.supports(CommonKeys.SESSIONS)) { + Log.warn(container.getClass().getSimpleName() + " does not support SESSIONS key."); + } + return new SessionsMutator(container.getValue(CommonKeys.SESSIONS).orElse(new ArrayList<>())); } public static SessionsMutator copyOf(SessionsMutator mutator) { diff --git a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/TPSMutator.java b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/TPSMutator.java index eca04b295..1d3fe38ce 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/TPSMutator.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/store/mutators/TPSMutator.java @@ -4,9 +4,9 @@ import com.djrapitops.plan.data.container.TPS; import com.djrapitops.plan.data.store.containers.DataContainer; import com.djrapitops.plan.data.store.keys.ServerKeys; import com.djrapitops.plan.system.settings.Settings; -import com.djrapitops.plan.utilities.FormatUtils; import com.djrapitops.plan.utilities.html.graphs.line.Point; import com.djrapitops.plugin.api.TimeAmount; +import com.djrapitops.plugin.api.utility.log.Log; import java.util.ArrayList; import java.util.List; @@ -28,8 +28,11 @@ public class TPSMutator { this.tpsData = tpsData; } - public static TPSMutator forContainer(DataContainer dataContainer) { - return new TPSMutator(dataContainer.getValue(ServerKeys.TPS).orElse(new ArrayList<>())); + public static TPSMutator forContainer(DataContainer container) { + if (!container.supports(ServerKeys.TPS)) { + Log.warn(container.getClass().getSimpleName() + " does not support TPS key."); + } + return new TPSMutator(container.getValue(ServerKeys.TPS).orElse(new ArrayList<>())); } public static TPSMutator copyOf(TPSMutator mutator) { @@ -171,7 +174,7 @@ public class TPSMutator { .filter(num -> num >= 0) .average(); if (average.isPresent()) { - return Double.parseDouble(FormatUtils.cutDecimals(average.getAsDouble())); + return average.getAsDouble(); } return -1; } @@ -182,7 +185,7 @@ public class TPSMutator { .filter(num -> num >= 0) .average(); if (average.isPresent()) { - return Double.parseDouble(FormatUtils.cutDecimals(average.getAsDouble())); + return average.getAsDouble(); } return -1; } @@ -193,7 +196,7 @@ public class TPSMutator { .filter(num -> num >= 0) .average(); if (average.isPresent()) { - return Double.parseDouble(FormatUtils.cutDecimals(average.getAsDouble())); + return average.getAsDouble(); } return -1; } @@ -204,7 +207,7 @@ public class TPSMutator { .filter(num -> num >= 0) .average(); if (average.isPresent()) { - return Double.parseDouble(FormatUtils.cutDecimals(average.getAsDouble())); + return average.getAsDouble(); } return -1; } @@ -215,7 +218,7 @@ public class TPSMutator { .filter(num -> num >= 0) .average(); if (average.isPresent()) { - return Double.parseDouble(FormatUtils.cutDecimals(average.getAsDouble())); + return average.getAsDouble(); } return -1; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java index 9136ae8fb..3e2a32aa9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLFetchOps.java @@ -9,6 +9,7 @@ import com.djrapitops.plan.data.store.containers.*; import com.djrapitops.plan.data.store.keys.PerServerKeys; import com.djrapitops.plan.data.store.keys.PlayerKeys; import com.djrapitops.plan.data.store.keys.ServerKeys; +import com.djrapitops.plan.data.store.keys.SessionKeys; import com.djrapitops.plan.data.store.mutators.PerServerDataMutator; import com.djrapitops.plan.data.store.mutators.PlayersMutator; import com.djrapitops.plan.data.store.mutators.SessionsMutator; @@ -60,7 +61,7 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { container.putRawData(ServerKeys.SERVER_UUID, serverUUID); container.putRawData(ServerKeys.NAME, serverInfo.get().getName()); container.putSupplier(ServerKeys.PLAYERS, () -> getPlayerContainers(serverUUID)); - container.putSupplier(ServerKeys.PLAYER_COUNT, container.getUnsafe(ServerKeys.PLAYERS)::size); + container.putSupplier(ServerKeys.PLAYER_COUNT, () -> container.getUnsafe(ServerKeys.PLAYERS).size()); container.putSupplier(ServerKeys.TPS, () -> tpsTable.getTPSData(serverUUID)); container.putSupplier(ServerKeys.ALL_TIME_PEAK_PLAYERS, () -> { @@ -87,10 +88,10 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { // Calculating getters container.putSupplier(ServerKeys.OPERATORS, () -> PlayersMutator.forContainer(container).operators()); container.putSupplier(ServerKeys.SESSIONS, () -> PlayersMutator.forContainer(container).getSessions()); - container.putSupplier(ServerKeys.PLAYER_KILLS, SessionsMutator.forContainer(container)::toPlayerKillList); - container.putSupplier(ServerKeys.PLAYER_KILL_COUNT, container.getUnsafe(ServerKeys.PLAYER_KILLS)::size); - container.putSupplier(ServerKeys.MOB_KILL_COUNT, SessionsMutator.forContainer(container)::toMobKillCount); - container.putSupplier(ServerKeys.DEATH_COUNT, SessionsMutator.forContainer(container)::toDeathCount); + container.putSupplier(ServerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList()); + container.putSupplier(ServerKeys.PLAYER_KILL_COUNT, () -> container.getUnsafe(ServerKeys.PLAYER_KILLS).size()); + container.putSupplier(ServerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); + container.putSupplier(ServerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); return container; } @@ -137,20 +138,22 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { // Calculating getters container.putSupplier(PlayerKeys.WORLD_TIMES, () -> { WorldTimes worldTimes = new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).flatMapWorldTimes(); - container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(session -> worldTimes.add(session.getWorldTimes())); + container.getValue(PlayerKeys.ACTIVE_SESSION) + .ifPresent(session -> worldTimes.add( + session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>()))) + ); return worldTimes; }); - container.putSupplier(PlayerKeys.LAST_SEEN, SessionsMutator.forContainer(container)::toLastSeen); + container.putSupplier(PlayerKeys.LAST_SEEN, () -> SessionsMutator.forContainer(container).toLastSeen()); - container.putSupplier(PlayerKeys.PLAYER_KILLS, SessionsMutator.forContainer(container)::toPlayerKillList); - container.putSupplier(PlayerKeys.PLAYER_KILL_COUNT, container.getUnsafe(PlayerKeys.PLAYER_KILLS)::size); - container.putSupplier(PlayerKeys.MOB_KILL_COUNT, SessionsMutator.forContainer(container)::toMobKillCount); - container.putSupplier(PlayerKeys.DEATH_COUNT, SessionsMutator.forContainer(container)::toDeathCount); + container.putSupplier(PlayerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList()); + container.putSupplier(PlayerKeys.PLAYER_KILL_COUNT, () -> container.getUnsafe(PlayerKeys.PLAYER_KILLS).size()); + container.putSupplier(PlayerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); + container.putSupplier(PlayerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); containers.add(container); } - return containers; } @@ -186,14 +189,13 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { ); // Calculating getters - container.putSupplier(PlayerKeys.LAST_SEEN, SessionsMutator.forContainer(container)::toLastSeen); + container.putSupplier(PlayerKeys.LAST_SEEN, () -> SessionsMutator.forContainer(container).toLastSeen()); - container.putSupplier(PlayerKeys.MOB_KILL_COUNT, SessionsMutator.forContainer(container)::toMobKillCount); - container.putSupplier(PlayerKeys.DEATH_COUNT, SessionsMutator.forContainer(container)::toDeathCount); + container.putSupplier(PlayerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); + container.putSupplier(PlayerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); containers.add(container); } - return containers; } @@ -228,13 +230,13 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { List serverSessions = sessionEntry.getValue(); container.putRawData(PerServerKeys.SESSIONS, serverSessions); - container.putSupplier(PerServerKeys.LAST_SEEN, SessionsMutator.forContainer(container)::toLastSeen); + container.putSupplier(PerServerKeys.LAST_SEEN, () -> SessionsMutator.forContainer(container).toLastSeen()); - container.putSupplier(PerServerKeys.WORLD_TIMES, SessionsMutator.forContainer(container)::toTotalWorldTimes); - container.putSupplier(PerServerKeys.PLAYER_KILLS, SessionsMutator.forContainer(container)::toPlayerKillList); - container.putSupplier(PerServerKeys.PLAYER_KILL_COUNT, container.getUnsafe(PerServerKeys.PLAYER_KILLS)::size); - container.putSupplier(PerServerKeys.MOB_KILL_COUNT, SessionsMutator.forContainer(container)::toMobKillCount); - container.putSupplier(PerServerKeys.DEATH_COUNT, SessionsMutator.forContainer(container)::toDeathCount); + container.putSupplier(PerServerKeys.WORLD_TIMES, () -> SessionsMutator.forContainer(container).toTotalWorldTimes()); + container.putSupplier(PerServerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList()); + container.putSupplier(PerServerKeys.PLAYER_KILL_COUNT, () -> container.getUnsafe(PerServerKeys.PLAYER_KILLS).size()); + container.putSupplier(PerServerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); + container.putSupplier(PerServerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); perServerContainer.put(serverUUID, container); perServerContainers.put(uuid, perServerContainer); } @@ -253,8 +255,8 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { container.putSupplier(PlayerKeys.NICKNAMES, () -> nicknamesTable.getNicknameInformation(uuid)); container.putSupplier(PlayerKeys.PER_SERVER, () -> getPerServerData(uuid)); - container.putSupplier(PlayerKeys.BANNED, new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER))::isBanned); - container.putSupplier(PlayerKeys.OPERATOR, new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER))::isOperator); + container.putSupplier(PlayerKeys.BANNED, () -> new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).isBanned()); + container.putSupplier(PlayerKeys.OPERATOR, () -> new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).isOperator()); container.putSupplier(PlayerKeys.SESSIONS, () -> { List sessions = new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).flatMapSessions(); @@ -265,16 +267,18 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { container.putSupplier(PlayerKeys.WORLD_TIMES, () -> { WorldTimes worldTimes = new PerServerDataMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).flatMapWorldTimes(); - container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(session -> worldTimes.add(session.getWorldTimes())); + container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(session -> worldTimes.add( + session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>()))) + ); return worldTimes; }); - container.putSupplier(PlayerKeys.LAST_SEEN, SessionsMutator.forContainer(container)::toLastSeen); + container.putSupplier(PlayerKeys.LAST_SEEN, () -> SessionsMutator.forContainer(container).toLastSeen()); - container.putSupplier(PlayerKeys.PLAYER_KILLS, SessionsMutator.forContainer(container)::toPlayerKillList); - container.putSupplier(PlayerKeys.PLAYER_KILL_COUNT, container.getUnsafe(PlayerKeys.PLAYER_KILLS)::size); - container.putSupplier(PlayerKeys.MOB_KILL_COUNT, SessionsMutator.forContainer(container)::toMobKillCount); - container.putSupplier(PlayerKeys.DEATH_COUNT, SessionsMutator.forContainer(container)::toDeathCount); + container.putSupplier(PlayerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList()); + container.putSupplier(PlayerKeys.PLAYER_KILL_COUNT, () -> container.getUnsafe(PlayerKeys.PLAYER_KILLS).size()); + container.putSupplier(PlayerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); + container.putSupplier(PlayerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); return container; } @@ -302,13 +306,13 @@ public class SQLFetchOps extends SQLOps implements FetchOperations { DataContainer container = perServerContainer.getOrDefault(serverUUID, new DataContainer()); container.putRawData(PerServerKeys.SESSIONS, serverSessions); - container.putSupplier(PerServerKeys.LAST_SEEN, SessionsMutator.forContainer(container)::toLastSeen); + container.putSupplier(PerServerKeys.LAST_SEEN, () -> SessionsMutator.forContainer(container).toLastSeen()); - container.putSupplier(PerServerKeys.WORLD_TIMES, SessionsMutator.forContainer(container)::toTotalWorldTimes); - container.putSupplier(PerServerKeys.PLAYER_KILLS, SessionsMutator.forContainer(container)::toPlayerKillList); - container.putSupplier(PerServerKeys.PLAYER_KILL_COUNT, container.getUnsafe(PerServerKeys.PLAYER_KILLS)::size); - container.putSupplier(PerServerKeys.MOB_KILL_COUNT, SessionsMutator.forContainer(container)::toMobKillCount); - container.putSupplier(PerServerKeys.DEATH_COUNT, SessionsMutator.forContainer(container)::toDeathCount); + container.putSupplier(PerServerKeys.WORLD_TIMES, () -> SessionsMutator.forContainer(container).toTotalWorldTimes()); + container.putSupplier(PerServerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList()); + container.putSupplier(PerServerKeys.PLAYER_KILL_COUNT, () -> container.getUnsafe(PerServerKeys.PLAYER_KILLS).size()); + container.putSupplier(PerServerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); + container.putSupplier(PerServerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); perServerContainer.put(serverUUID, container); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java index b01b2ffc5..5b1f5e5d9 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/NicknamesTable.java @@ -66,7 +66,7 @@ public class NicknamesTable extends UserIDTable { } public void alterTableV19() { - addColumns(Col.LAST_USED + " " + Sql.LONG + "NOT NULL DEFAULT '0'"); + addColumns(Col.LAST_USED + " bigint NOT NULL DEFAULT '0'"); RunnableFactory.createNew(new AbsRunnable("DB version 18->19") { @Override diff --git a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java index b2ac66c13..9e440e9da 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/database/databases/sql/tables/Table.java @@ -5,7 +5,9 @@ import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.processing.ExecStatement; import com.djrapitops.plan.system.database.databases.sql.processing.QueryStatement; +import com.djrapitops.plan.system.settings.Settings; import com.djrapitops.plan.utilities.MiscUtils; +import com.djrapitops.plugin.api.utility.log.Log; import com.djrapitops.plugin.utilities.Verify; import com.google.common.base.Objects; @@ -101,8 +103,10 @@ public abstract class Table { for (String statement : statements) { try { execute(statement); - } catch (DBOpException ignored) { - /* ignored */ + } catch (DBOpException e) { + if (Settings.DEV_MODE.isTrue()) { + Log.toLog(this.getClass(), e); + } } } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/NetworkPage.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/NetworkPage.java index 9f191e36e..b30b1bd29 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/NetworkPage.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/NetworkPage.java @@ -31,7 +31,7 @@ public class NetworkPage extends Page { PlaceholderReplacer placeholderReplacer = new PlaceholderReplacer(); placeholderReplacer.addAllPlaceholdersFrom(networkContainer, VERSION, NETWORK_NAME, TIME_ZONE, - PLAYERS_ONLINE_SERIES, PLAYERS_TOTAL, PLAYERS_GRAPH_COLOR, + PLAYERS_ONLINE, PLAYERS_ONLINE_SERIES, PLAYERS_TOTAL, PLAYERS_GRAPH_COLOR, REFRESH_TIME_F, RECENT_PEAK_TIME_F, ALL_TIME_PEAK_TIME_F, PLAYERS_ALL_TIME_PEAK, PLAYERS_RECENT_PEAK, PLAYERS_DAY, PLAYERS_WEEK, PLAYERS_MONTH, @@ -40,7 +40,7 @@ public class NetworkPage extends Page { ); NetworkPageContent networkPageContent = (NetworkPageContent) ResponseCache.loadResponse(PageId.NETWORK_CONTENT.id(), NetworkPageContent::new); - addValue("tabContentServers", networkPageContent.getContents()); + placeholderReplacer.put("tabContentServers", networkPageContent.getContents()); return placeholderReplacer.apply(FileUtil.getStringFromResource("web/network.html")); } catch (Exception e) { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/Page.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/Page.java index 427b64775..24c9cdb7e 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/Page.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/pages/parsing/Page.java @@ -23,13 +23,10 @@ public abstract class Page { this.placeHolders = new HashMap<>(); } + @Deprecated protected void addValue(String placeholder, Serializable value) { placeHolders.put(placeholder, value); } - protected void addValues(Map values) { - placeHolders.putAll(values); - } - public abstract String toHtml() throws ParseException; } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/tables/PlayersTable.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/tables/PlayersTable.java index 48c1094d6..f60655342 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/tables/PlayersTable.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/tables/PlayersTable.java @@ -32,7 +32,7 @@ public class PlayersTable extends TableContainer { Html.FONT_AWESOME_ICON.parse("clock-o") + " Playtime", Html.FONT_AWESOME_ICON.parse("calendar-plus-o") + " Sessions", Html.FONT_AWESOME_ICON.parse("user-plus") + " Registered", - Html.FONT_AWESOME_ICON.parse("calendar-check-o") + " Registered", + Html.FONT_AWESOME_ICON.parse("calendar-check-o") + " Last Seen", Html.FONT_AWESOME_ICON.parse("globe") + " Geolocation" ); this.players = players;