Removed some usages of DataContainer#getUnsafe

Fixes Unsupported Key exception on player JSON export
This commit is contained in:
Rsl1122 2019-03-10 13:27:04 +02:00
parent 3167cc5f6a
commit 228e2d509c
20 changed files with 47 additions and 36 deletions

View File

@ -21,7 +21,10 @@ import com.djrapitops.plan.data.store.keys.SessionKeys;
import com.djrapitops.plan.data.store.objects.DateHolder; import com.djrapitops.plan.data.store.objects.DateHolder;
import com.djrapitops.plan.data.time.WorldTimes; import com.djrapitops.plan.data.time.WorldTimes;
import java.util.*; import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
/** /**
* DataContainer for information about a player's play session. * DataContainer for information about a player's play session.
@ -91,7 +94,7 @@ public class Session extends DynamicDataContainer implements DateHolder {
*/ */
public Session(int id, UUID uuid, UUID serverUUID, long sessionStart, long sessionEnd, int mobKills, int deaths, long afkTime) { public Session(int id, UUID uuid, UUID serverUUID, long sessionStart, long sessionEnd, int mobKills, int deaths, long afkTime) {
this.sessionStart = sessionStart; this.sessionStart = sessionStart;
worldTimes = new WorldTimes(new HashMap<>()); worldTimes = new WorldTimes();
playerKills = new ArrayList<>(); playerKills = new ArrayList<>();
this.mobKills = mobKills; this.mobKills = mobKills;

View File

@ -363,7 +363,7 @@ public class AnalysisContainer extends DynamicDataContainer {
private void addGraphSuppliers() { private void addGraphSuppliers() {
Key<WorldPie> worldPie = new Key<>(WorldPie.class, "WORLD_PIE"); Key<WorldPie> worldPie = new Key<>(WorldPie.class, "WORLD_PIE");
putCachingSupplier(worldPie, () -> graphs.pie().worldPie( putCachingSupplier(worldPie, () -> graphs.pie().worldPie(
serverContainer.getValue(ServerKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>())) serverContainer.getValue(ServerKeys.WORLD_TIMES).orElse(new WorldTimes())
)); ));
putSupplier(AnalysisKeys.WORLD_PIE_SERIES, () -> getUnsafe(worldPie).toHighChartsSeries()); putSupplier(AnalysisKeys.WORLD_PIE_SERIES, () -> getUnsafe(worldPie).toHighChartsSeries());
putSupplier(AnalysisKeys.GM_PIE_SERIES, () -> getUnsafe(worldPie).toHighChartsDrilldown()); putSupplier(AnalysisKeys.GM_PIE_SERIES, () -> getUnsafe(worldPie).toHighChartsDrilldown());

View File

@ -46,13 +46,13 @@ public class PerServerMutator {
public List<Session> flatMapSessions() { public List<Session> flatMapSessions() {
return data.values().stream() return data.values().stream()
.filter(container -> container.supports(PerServerKeys.SESSIONS)) .filter(container -> container.supports(PerServerKeys.SESSIONS))
.map(container -> container.getUnsafe(PerServerKeys.SESSIONS)) .map(container -> container.getValue(PerServerKeys.SESSIONS).orElse(Collections.emptyList()))
.flatMap(Collection::stream) .flatMap(Collection::stream)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
public WorldTimes flatMapWorldTimes() { public WorldTimes flatMapWorldTimes() {
WorldTimes total = new WorldTimes(new HashMap<>()); WorldTimes total = new WorldTimes();
for (DataContainer container : data.values()) { for (DataContainer container : data.values()) {
if (container.supports(PerServerKeys.WORLD_TIMES)) { if (container.supports(PerServerKeys.WORLD_TIMES)) {
@ -68,7 +68,7 @@ public class PerServerMutator {
Map<UUID, WorldTimes> timesMap = new HashMap<>(); Map<UUID, WorldTimes> timesMap = new HashMap<>();
for (Map.Entry<UUID, DataContainer> entry : data.entrySet()) { for (Map.Entry<UUID, DataContainer> entry : data.entrySet()) {
DataContainer container = entry.getValue(); DataContainer container = entry.getValue();
timesMap.put(entry.getKey(), container.getValue(PerServerKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>()))); timesMap.put(entry.getKey(), container.getValue(PerServerKeys.WORLD_TIMES).orElse(new WorldTimes()));
} }
return timesMap; return timesMap;
} }

View File

@ -75,7 +75,7 @@ public class SessionsMutator {
} }
public WorldTimes toTotalWorldTimes() { public WorldTimes toTotalWorldTimes() {
WorldTimes total = new WorldTimes(new HashMap<>()); WorldTimes total = new WorldTimes();
for (Session session : sessions) { for (Session session : sessions) {
session.getValue(SessionKeys.WORLD_TIMES).ifPresent(total::add); session.getValue(SessionKeys.WORLD_TIMES).ifPresent(total::add);

View File

@ -54,6 +54,10 @@ public class WorldTimes {
this.times = times; this.times = times;
} }
public WorldTimes() {
this(new HashMap<>());
}
private void addWorld(String worldName, String gameMode, long changeTime) { private void addWorld(String worldName, String gameMode, long changeTime) {
if (worldName == null || gameMode == null) return; if (worldName == null || gameMode == null) return;
times.put(worldName, new GMTimes(gameMode, changeTime)); times.put(worldName, new GMTimes(gameMode, changeTime));

View File

@ -103,9 +103,9 @@ public class DataStoreQueries {
statement.setString(1, session.getUnsafe(SessionKeys.UUID).toString()); statement.setString(1, session.getUnsafe(SessionKeys.UUID).toString());
statement.setLong(2, session.getUnsafe(SessionKeys.START)); statement.setLong(2, session.getUnsafe(SessionKeys.START));
statement.setLong(3, session.getUnsafe(SessionKeys.END)); statement.setLong(3, session.getUnsafe(SessionKeys.END));
statement.setInt(4, session.getUnsafe(SessionKeys.DEATH_COUNT)); statement.setInt(4, session.getValue(SessionKeys.DEATH_COUNT).orElse(0));
statement.setInt(5, session.getUnsafe(SessionKeys.MOB_KILL_COUNT)); statement.setInt(5, session.getValue(SessionKeys.MOB_KILL_COUNT).orElse(0));
statement.setLong(6, session.getUnsafe(SessionKeys.AFK_TIME)); statement.setLong(6, session.getValue(SessionKeys.AFK_TIME).orElse(0L));
statement.setString(7, session.getUnsafe(SessionKeys.SERVER_UUID).toString()); statement.setString(7, session.getUnsafe(SessionKeys.SERVER_UUID).toString());
} }
}; };

View File

@ -341,9 +341,9 @@ public class LargeStoreQueries {
statement.setString(1, session.getUnsafe(SessionKeys.UUID).toString()); statement.setString(1, session.getUnsafe(SessionKeys.UUID).toString());
statement.setLong(2, session.getUnsafe(SessionKeys.START)); statement.setLong(2, session.getUnsafe(SessionKeys.START));
statement.setLong(3, session.getUnsafe(SessionKeys.END)); statement.setLong(3, session.getUnsafe(SessionKeys.END));
statement.setInt(4, session.getUnsafe(SessionKeys.DEATH_COUNT)); statement.setInt(4, session.getValue(SessionKeys.DEATH_COUNT).orElse(0));
statement.setInt(5, session.getUnsafe(SessionKeys.MOB_KILL_COUNT)); statement.setInt(5, session.getValue(SessionKeys.MOB_KILL_COUNT).orElse(0));
statement.setLong(6, session.getUnsafe(SessionKeys.AFK_TIME)); statement.setLong(6, session.getValue(SessionKeys.AFK_TIME).orElse(0L));
statement.setString(7, session.getUnsafe(SessionKeys.SERVER_UUID).toString()); statement.setString(7, session.getUnsafe(SessionKeys.SERVER_UUID).toString());
statement.addBatch(); statement.addBatch();
} }

View File

@ -63,7 +63,7 @@ public class PerServerContainerQuery implements Query<PerServerContainer> {
// After-values that can be calculated without database. // After-values that can be calculated without database.
for (DataContainer serverContainer : perServerContainer.values()) { for (DataContainer serverContainer : perServerContainer.values()) {
serverContainer.putSupplier(PerServerKeys.MOB_DEATH_COUNT, () -> serverContainer.putSupplier(PerServerKeys.MOB_DEATH_COUNT, () ->
serverContainer.getUnsafe(PerServerKeys.DEATH_COUNT) - serverContainer.getUnsafe(PerServerKeys.PLAYER_DEATH_COUNT) serverContainer.getValue(PerServerKeys.DEATH_COUNT).orElse(0) - serverContainer.getValue(PerServerKeys.PLAYER_DEATH_COUNT).orElse(0)
); );
} }

View File

@ -19,6 +19,7 @@ package com.djrapitops.plan.db.access.queries.containers;
import com.djrapitops.plan.data.container.BaseUser; import com.djrapitops.plan.data.container.BaseUser;
import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.store.Key; import com.djrapitops.plan.data.store.Key;
import com.djrapitops.plan.data.store.containers.PerServerContainer;
import com.djrapitops.plan.data.store.containers.PlayerContainer; import com.djrapitops.plan.data.store.containers.PlayerContainer;
import com.djrapitops.plan.data.store.keys.PlayerKeys; import com.djrapitops.plan.data.store.keys.PlayerKeys;
import com.djrapitops.plan.data.store.keys.SessionKeys; import com.djrapitops.plan.data.store.keys.SessionKeys;
@ -29,7 +30,7 @@ import com.djrapitops.plan.db.SQLDB;
import com.djrapitops.plan.db.access.Query; import com.djrapitops.plan.db.access.Query;
import com.djrapitops.plan.db.access.queries.objects.*; import com.djrapitops.plan.db.access.queries.objects.*;
import java.util.HashMap; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -64,11 +65,11 @@ public class PlayerContainerQuery implements Query<PlayerContainer> {
container.putCachingSupplier(PlayerKeys.NICKNAMES, () -> db.query(NicknameQueries.fetchNicknameDataOfPlayer(uuid))); container.putCachingSupplier(PlayerKeys.NICKNAMES, () -> db.query(NicknameQueries.fetchNicknameDataOfPlayer(uuid)));
container.putCachingSupplier(PlayerKeys.PER_SERVER, () -> db.query(new PerServerContainerQuery(uuid))); container.putCachingSupplier(PlayerKeys.PER_SERVER, () -> db.query(new PerServerContainerQuery(uuid)));
container.putSupplier(PlayerKeys.BANNED, () -> new PerServerMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).isBanned()); container.putSupplier(PlayerKeys.BANNED, () -> new PerServerMutator(container.getValue(PlayerKeys.PER_SERVER).orElse(new PerServerContainer())).isBanned());
container.putSupplier(PlayerKeys.OPERATOR, () -> new PerServerMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).isOperator()); container.putSupplier(PlayerKeys.OPERATOR, () -> new PerServerMutator(container.getValue(PlayerKeys.PER_SERVER).orElse(new PerServerContainer())).isOperator());
container.putCachingSupplier(PlayerKeys.SESSIONS, () -> { container.putCachingSupplier(PlayerKeys.SESSIONS, () -> {
List<Session> sessions = new PerServerMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).flatMapSessions(); List<Session> sessions = new PerServerMutator(container.getValue(PlayerKeys.PER_SERVER).orElse(new PerServerContainer())).flatMapSessions();
container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(sessions::add); container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(sessions::add);
return sessions; return sessions;
} }
@ -77,7 +78,7 @@ public class PlayerContainerQuery implements Query<PlayerContainer> {
{ {
WorldTimes worldTimes = db.query(WorldTimesQueries.fetchPlayerTotalWorldTimes(uuid)); WorldTimes worldTimes = db.query(WorldTimesQueries.fetchPlayerTotalWorldTimes(uuid));
container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(session -> worldTimes.add( container.getValue(PlayerKeys.ACTIVE_SESSION).ifPresent(session -> worldTimes.add(
session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>()))) session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes()))
); );
return worldTimes; return worldTimes;
}); });
@ -86,7 +87,7 @@ public class PlayerContainerQuery implements Query<PlayerContainer> {
container.putSupplier(PlayerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList()); container.putSupplier(PlayerKeys.PLAYER_KILLS, () -> SessionsMutator.forContainer(container).toPlayerKillList());
container.putSupplier(PlayerKeys.PLAYER_DEATHS, () -> SessionsMutator.forContainer(container).toPlayerDeathList()); container.putSupplier(PlayerKeys.PLAYER_DEATHS, () -> SessionsMutator.forContainer(container).toPlayerDeathList());
container.putSupplier(PlayerKeys.PLAYER_KILL_COUNT, () -> container.getUnsafe(PlayerKeys.PLAYER_KILLS).size()); container.putSupplier(PlayerKeys.PLAYER_KILL_COUNT, () -> container.getValue(PlayerKeys.PLAYER_KILLS).map(Collection::size).orElse(0));
container.putSupplier(PlayerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount()); container.putSupplier(PlayerKeys.MOB_KILL_COUNT, () -> SessionsMutator.forContainer(container).toMobKillCount());
container.putSupplier(PlayerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount()); container.putSupplier(PlayerKeys.DEATH_COUNT, () -> SessionsMutator.forContainer(container).toDeathCount());

View File

@ -103,7 +103,7 @@ public class ServerPlayerContainersQuery implements Query<List<PlayerContainer>>
WorldTimes worldTimes = new PerServerMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).flatMapWorldTimes(); WorldTimes worldTimes = new PerServerMutator(container.getUnsafe(PlayerKeys.PER_SERVER)).flatMapWorldTimes();
container.getValue(PlayerKeys.ACTIVE_SESSION) container.getValue(PlayerKeys.ACTIVE_SESSION)
.ifPresent(session -> worldTimes.add( .ifPresent(session -> worldTimes.add(
session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>()))) session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes()))
); );
return worldTimes; return worldTimes;
}); });

View File

@ -214,7 +214,7 @@ public class SessionQueries {
set.getLong(SessionsTable.AFK_TIME) set.getLong(SessionsTable.AFK_TIME)
)); ));
WorldTimes worldTimes = session.getUnsafe(SessionKeys.WORLD_TIMES); WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes());
String worldName = set.getString(WorldTable.NAME); String worldName = set.getString(WorldTable.NAME);
if (!worldTimes.contains(worldName)) { if (!worldTimes.contains(worldName)) {

View File

@ -75,7 +75,7 @@ public class WorldTimesQueries {
public WorldTimes processResults(ResultSet set) throws SQLException { public WorldTimes processResults(ResultSet set) throws SQLException {
String[] gms = GMTimes.getGMKeyArray(); String[] gms = GMTimes.getGMKeyArray();
WorldTimes worldTimes = new WorldTimes(new HashMap<>()); WorldTimes worldTimes = new WorldTimes();
while (set.next()) { while (set.next()) {
String worldName = set.getString(worldColumn); String worldName = set.getString(worldColumn);
@ -110,7 +110,7 @@ public class WorldTimesQueries {
public WorldTimes processResults(ResultSet set) throws SQLException { public WorldTimes processResults(ResultSet set) throws SQLException {
String[] gms = GMTimes.getGMKeyArray(); String[] gms = GMTimes.getGMKeyArray();
WorldTimes worldTimes = new WorldTimes(new HashMap<>()); WorldTimes worldTimes = new WorldTimes();
while (set.next()) { while (set.next()) {
String worldName = set.getString(worldColumn); String worldName = set.getString(worldColumn);
@ -149,7 +149,7 @@ public class WorldTimesQueries {
Map<UUID, WorldTimes> worldTimesMap = new HashMap<>(); Map<UUID, WorldTimes> worldTimesMap = new HashMap<>();
while (set.next()) { while (set.next()) {
UUID serverUUID = UUID.fromString(set.getString(WorldTimesTable.SERVER_UUID)); UUID serverUUID = UUID.fromString(set.getString(WorldTimesTable.SERVER_UUID));
WorldTimes worldTimes = worldTimesMap.getOrDefault(serverUUID, new WorldTimes(new HashMap<>())); WorldTimes worldTimes = worldTimesMap.getOrDefault(serverUUID, new WorldTimes());
String worldName = set.getString(worldColumn); String worldName = set.getString(worldColumn);
GMTimes gmTimes = extractGMTimes(set, gms); GMTimes gmTimes = extractGMTimes(set, gms);

View File

@ -165,7 +165,7 @@ public class WorldAliasSettings {
if (!session.supports(SessionKeys.WORLD_TIMES)) { if (!session.supports(SessionKeys.WORLD_TIMES)) {
return "No World Time Data"; return "No World Time Data";
} }
WorldTimes worldTimes = session.getUnsafe(SessionKeys.WORLD_TIMES); WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes());
if (!session.supports(SessionKeys.END)) { if (!session.supports(SessionKeys.END)) {
return "Current: " + aliases.getOrDefault(worldTimes.getCurrentWorld(), "Unknown"); return "Current: " + aliases.getOrDefault(worldTimes.getCurrentWorld(), "Unknown");
} }

View File

@ -118,7 +118,7 @@ public class PlayerCalendar {
.orElse(System.currentTimeMillis())) .orElse(System.currentTimeMillis()))
.append("}"); .append("}");
for (PlayerKill kill : session.getUnsafe(SessionKeys.PLAYER_KILLS)) { for (PlayerKill kill : session.getPlayerKills()) {
long time = kill.getDate(); long time = kill.getDate();
series.append(",{title: 'Killed: ").append(kill.getVictim()) series.append(",{title: 'Killed: ").append(kill.getVictim())

View File

@ -110,7 +110,7 @@ public class PunchCard implements HighChart {
private List<Long> getSessionStarts(Collection<Session> data) { private List<Long> getSessionStarts(Collection<Session> data) {
return data.stream() return data.stream()
.filter(Objects::nonNull) .filter(Objects::nonNull)
.map(s -> s.getUnsafe(SessionKeys.START)) .map(session -> session.getUnsafe(SessionKeys.START))
.sorted() .sorted()
.collect(Collectors.toList()); .collect(Collectors.toList());
} }

View File

@ -223,7 +223,7 @@ public class InspectPage implements Page {
sessionsAndPlaytime(replacer, sessionsMutator, daySessionsMutator, weekSessionsMutator, monthSessionsMutator); sessionsAndPlaytime(replacer, sessionsMutator, daySessionsMutator, weekSessionsMutator, monthSessionsMutator);
String punchCardData = graphs.special().punchCard(allSessions).toHighChartsSeries(); String punchCardData = graphs.special().punchCard(allSessions).toHighChartsSeries();
WorldTimes worldTimes = player.getValue(PlayerKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>())); WorldTimes worldTimes = player.getValue(PlayerKeys.WORLD_TIMES).orElse(new WorldTimes());
WorldPie worldPie = graphs.pie().worldPie(worldTimes); WorldPie worldPie = graphs.pie().worldPie(worldTimes);

View File

@ -25,6 +25,7 @@ import com.djrapitops.plan.utilities.comparators.SessionStartComparator;
import com.djrapitops.plan.utilities.formatting.Formatter; import com.djrapitops.plan.utilities.formatting.Formatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -85,7 +86,7 @@ public class RecentLoginList {
String name = player.getUnsafe(PlayerKeys.NAME); String name = player.getUnsafe(PlayerKeys.NAME);
long registerDate = player.getValue(PlayerKeys.REGISTERED).orElse(0L); long registerDate = player.getValue(PlayerKeys.REGISTERED).orElse(0L);
List<Session> sessions = player.getUnsafe(PlayerKeys.SESSIONS); List<Session> sessions = player.getValue(PlayerKeys.SESSIONS).orElse(Collections.emptyList());
if (sessions.isEmpty()) { if (sessions.isEmpty()) {
continue; continue;
} }

View File

@ -33,7 +33,6 @@ import com.djrapitops.plan.utilities.html.icon.Icon;
import com.djrapitops.plan.utilities.html.icon.Icons; import com.djrapitops.plan.utilities.html.icon.Icons;
import com.djrapitops.plugin.utilities.Format; import com.djrapitops.plugin.utilities.Format;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@ -92,7 +91,7 @@ public class ServerAccordion extends Accordion {
UUID serverUUID = entry.getKey(); UUID serverUUID = entry.getKey();
DataContainer container = entry.getValue(); DataContainer container = entry.getValue();
String serverName = serverNames.getOrDefault(serverUUID, "Unknown"); String serverName = serverNames.getOrDefault(serverUUID, "Unknown");
WorldTimes worldTimes = container.getValue(PerServerKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>())); WorldTimes worldTimes = container.getValue(PerServerKeys.WORLD_TIMES).orElse(new WorldTimes());
SessionsMutator sessionsMutator = SessionsMutator.forContainer(container); SessionsMutator sessionsMutator = SessionsMutator.forContainer(container);
boolean banned = container.getValue(PerServerKeys.BANNED).orElse(false); boolean banned = container.getValue(PerServerKeys.BANNED).orElse(false);

View File

@ -33,7 +33,10 @@ import com.djrapitops.plan.utilities.html.graphs.pie.WorldPie;
import com.djrapitops.plan.utilities.html.icon.Icons; import com.djrapitops.plan.utilities.html.icon.Icons;
import com.djrapitops.plan.utilities.html.tables.HtmlTables; import com.djrapitops.plan.utilities.html.tables.HtmlTables;
import java.util.*; import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.function.Supplier; import java.util.function.Supplier;
/** /**
@ -119,7 +122,7 @@ public class SessionAccordion extends Accordion {
String playerName = playerNames.getOrDefault(session.getValue(SessionKeys.UUID).orElse(null), "Unknown"); String playerName = playerNames.getOrDefault(session.getValue(SessionKeys.UUID).orElse(null), "Unknown");
String sessionStart = yearFormatter.apply(session); String sessionStart = yearFormatter.apply(session);
WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>())); WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes());
WorldPie worldPie = graphs.pie().worldPie(worldTimes); WorldPie worldPie = graphs.pie().worldPie(worldTimes);
String longestWorldPlayed = worldAliasSettings.getLongestWorldPlayed(session); String longestWorldPlayed = worldAliasSettings.getLongestWorldPlayed(session);
@ -191,7 +194,7 @@ public class SessionAccordion extends Accordion {
String serverName = serverNames.getOrDefault(session.getValue(SessionKeys.SERVER_UUID).orElse(null), "Unknown"); String serverName = serverNames.getOrDefault(session.getValue(SessionKeys.SERVER_UUID).orElse(null), "Unknown");
String sessionStart = yearFormatter.apply(session); String sessionStart = yearFormatter.apply(session);
WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes(new HashMap<>())); WorldTimes worldTimes = session.getValue(SessionKeys.WORLD_TIMES).orElse(new WorldTimes());
WorldPie worldPie = graphs.pie().worldPie(worldTimes); WorldPie worldPie = graphs.pie().worldPie(worldTimes);
String longestWorldPlayed = worldAliasSettings.getLongestWorldPlayed(session); String longestWorldPlayed = worldAliasSettings.getLongestWorldPlayed(session);

View File

@ -748,7 +748,7 @@ public abstract class CommonDBTest {
@Test @Test
public void emptyServerWorldTimesIsEmpty() { public void emptyServerWorldTimesIsEmpty() {
WorldTimes worldTimesOfServer = db.query(WorldTimesQueries.fetchServerTotalWorldTimes(serverUUID)); WorldTimes worldTimesOfServer = db.query(WorldTimesQueries.fetchServerTotalWorldTimes(serverUUID));
assertEquals(new WorldTimes(new HashMap<>()), worldTimesOfServer); assertEquals(new WorldTimes(), worldTimesOfServer);
} }
@Test @Test