diff --git a/Plan/bukkit/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java b/Plan/bukkit/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java
index 33a3a0eec..cfb54092d 100644
--- a/Plan/bukkit/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java
+++ b/Plan/bukkit/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java
@@ -163,7 +163,8 @@ public class PlayerOnlineListener implements Listener {
}
database.executeTransaction(new PlayerServerRegisterTransaction(uuid, player::getFirstPlayed, playerName, serverUUID));
- processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverUUID, time, world, gm)));
+ sessionCache.cacheSession(uuid, new Session(uuid, serverUUID, time, world, gm))
+ .ifPresent(previousSession -> database.executeTransaction(new SessionEndTransaction(previousSession)));
if (!displayName.equals(nicknameCache.getDisplayName(uuid))) {
database.executeTransaction(
@@ -187,14 +188,17 @@ public class PlayerOnlineListener implements Listener {
private void actOnQuitEvent(PlayerQuitEvent event) {
long time = System.currentTimeMillis();
Player player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
- AFKListener.AFK_TRACKER.loggedOut(uuid, time);
+ AFKListener.AFK_TRACKER.loggedOut(playerUUID, time);
- nicknameCache.removeDisplayName(uuid);
+ nicknameCache.removeDisplayName(playerUUID);
- processing.submit(processors.player().banAndOpProcessor(uuid, player::isBanned, player.isOp()));
- processing.submit(processors.player().endSessionProcessor(uuid, time));
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ processing.submit(processors.player().banAndOpProcessor(playerUUID, player::isBanned, player.isOp()));
+
+ sessionCache.endSession(playerUUID, time)
+ .ifPresent(endedSession -> dbSystem.getDatabase().executeTransaction(new SessionEndTransaction(endedSession)));
+
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
}
}
diff --git a/Plan/bungeecord/src/main/java/com/djrapitops/plan/system/listeners/bungee/PlayerOnlineListener.java b/Plan/bungeecord/src/main/java/com/djrapitops/plan/system/listeners/bungee/PlayerOnlineListener.java
index 6c31f83cb..55a2c6feb 100644
--- a/Plan/bungeecord/src/main/java/com/djrapitops/plan/system/listeners/bungee/PlayerOnlineListener.java
+++ b/Plan/bungeecord/src/main/java/com/djrapitops/plan/system/listeners/bungee/PlayerOnlineListener.java
@@ -84,24 +84,23 @@ public class PlayerOnlineListener implements Listener {
public void onPostLogin(PostLoginEvent event) {
try {
ProxiedPlayer player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
String name = player.getName();
InetAddress address = player.getAddress().getAddress();
long time = System.currentTimeMillis();
- sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null));
-
+ sessionCache.cacheSession(playerUUID, new Session(playerUUID, serverInfo.getServerUUID(), time, null, null));
Database database = dbSystem.getDatabase();
boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS);
if (gatheringGeolocations) {
database.executeTransaction(
- new GeoInfoStoreTransaction(uuid, address, time, geolocationCache::getCountry)
+ new GeoInfoStoreTransaction(playerUUID, address, time, geolocationCache::getCountry)
);
}
- database.executeTransaction(new PlayerRegisterTransaction(uuid, () -> time, name));
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ database.executeTransaction(new PlayerRegisterTransaction(playerUUID, () -> time, name));
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID()));
} catch (Exception e) {
errorHandler.log(L.WARN, this.getClass(), e);
@@ -112,10 +111,10 @@ public class PlayerOnlineListener implements Listener {
public void onLogout(PlayerDisconnectEvent event) {
try {
ProxiedPlayer player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
- sessionCache.endSession(uuid, System.currentTimeMillis());
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ sessionCache.endSession(playerUUID, System.currentTimeMillis());
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID()));
} catch (Exception e) {
errorHandler.log(L.WARN, this.getClass(), e);
@@ -126,12 +125,12 @@ public class PlayerOnlineListener implements Listener {
public void onServerSwitch(ServerSwitchEvent event) {
try {
ProxiedPlayer player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
long time = System.currentTimeMillis();
// Replaces the current session in the cache.
- sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null));
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ sessionCache.cacheSession(playerUUID, new Session(playerUUID, serverInfo.getServerUUID(), time, null, null));
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
} catch (Exception e) {
errorHandler.log(L.WARN, this.getClass(), e);
}
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/EndSessionProcessor.java b/Plan/common/src/main/java/com/djrapitops/plan/db/access/transactions/events/SessionEndTransaction.java
similarity index 54%
rename from Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/EndSessionProcessor.java
rename to Plan/common/src/main/java/com/djrapitops/plan/db/access/transactions/events/SessionEndTransaction.java
index 73b9df8e2..5101e74c3 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/EndSessionProcessor.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/db/access/transactions/events/SessionEndTransaction.java
@@ -14,33 +14,27 @@
* You should have received a copy of the GNU Lesser General Public License
* along with Plan. If not, see .
*/
-package com.djrapitops.plan.system.processing.processors.player;
+package com.djrapitops.plan.db.access.transactions.events;
-import com.djrapitops.plan.system.cache.SessionCache;
-import com.djrapitops.plan.system.processing.CriticalRunnable;
-
-import java.util.UUID;
+import com.djrapitops.plan.data.container.Session;
+import com.djrapitops.plan.db.access.queries.DataStoreQueries;
+import com.djrapitops.plan.db.access.transactions.Transaction;
/**
- * Ends a session and saves it to the database.
+ * Transaction for storing a session after a session has ended.
*
* @author Rsl1122
*/
-public class EndSessionProcessor implements CriticalRunnable {
+public class SessionEndTransaction extends Transaction {
- private final UUID uuid;
- private final long time;
+ private final Session session;
- private final SessionCache sessionCache;
-
- EndSessionProcessor(UUID uuid, long time, SessionCache sessionCache) {
- this.uuid = uuid;
- this.time = time;
- this.sessionCache = sessionCache;
+ public SessionEndTransaction(Session session) {
+ this.session = session;
}
@Override
- public void run() {
- sessionCache.endSession(uuid, time);
+ protected void performOperations() {
+ execute(DataStoreQueries.storeSession(session));
}
-}
+}
\ No newline at end of file
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/cache/ProxySessionCache.java b/Plan/common/src/main/java/com/djrapitops/plan/system/cache/ProxySessionCache.java
index de0d94815..c884c7b40 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/system/cache/ProxySessionCache.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/system/cache/ProxySessionCache.java
@@ -36,12 +36,12 @@ public class ProxySessionCache extends SessionCache {
@Inject
public ProxySessionCache(DBSystem dbSystem) {
- super(dbSystem);
+ super();
}
@Override
- public Optional endSession(UUID uuid, long time) {
- removeSessionFromCache(uuid);
+ public Optional endSession(UUID playerUUID, long time) {
+ removeSessionFromCache(playerUUID);
/* Proxy should not save sessions so session is not removed.. */
return Optional.empty();
}
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java b/Plan/common/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java
index ec7d130e1..5c1ae3fbf 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/system/cache/SessionCache.java
@@ -18,7 +18,6 @@ package com.djrapitops.plan.system.cache;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.store.keys.SessionKeys;
-import com.djrapitops.plan.system.database.DBSystem;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -37,11 +36,8 @@ public class SessionCache {
private static final Map ACTIVE_SESSIONS = new HashMap<>();
- protected final DBSystem dbSystem;
-
@Inject
- public SessionCache(DBSystem dbSystem) {
- this.dbSystem = dbSystem;
+ public SessionCache() {
}
public static Map getActiveSessions() {
@@ -61,44 +57,46 @@ public class SessionCache {
/**
* Used to get the Session of the player in the sessionCache.
*
- * @param uuid UUID of the player.
+ * @param playerUUID UUID of the player.
* @return Optional with the session inside it if found.
*/
- public static Optional getCachedSession(UUID uuid) {
- return Optional.ofNullable(ACTIVE_SESSIONS.get(uuid));
+ public static Optional getCachedSession(UUID playerUUID) {
+ return Optional.ofNullable(ACTIVE_SESSIONS.get(playerUUID));
}
- public void cacheSession(UUID uuid, Session session) {
- if (getCachedSession(uuid).isPresent()) {
- endSession(uuid, System.currentTimeMillis());
+ /**
+ * Cache a new session.
+ *
+ * @param playerUUID UUID of the player
+ * @param session Session to cache.
+ * @return Optional: previous session. Recipients of this object should decide if it needs to be saved.
+ */
+ public Optional cacheSession(UUID playerUUID, Session session) {
+ if (getCachedSession(playerUUID).isPresent()) {
+ return endSession(playerUUID, session.getUnsafe(SessionKeys.START));
}
- ACTIVE_SESSIONS.put(uuid, session);
+ ACTIVE_SESSIONS.put(playerUUID, session);
+ return Optional.empty();
}
/**
* End a session and save it to database.
*
- * @param uuid UUID of the player.
- * @param time Time the session ended.
- * @throws com.djrapitops.plan.api.exceptions.database.DBOpException If saving failed.
+ * @param playerUUID UUID of the player.
+ * @param time Time the session ended.
+ * @return Optional: ended session. Recipients of this object should decide if it needs to be saved.
*/
- public Optional endSession(UUID uuid, long time) {
- Session session = ACTIVE_SESSIONS.get(uuid);
+ public Optional endSession(UUID playerUUID, long time) {
+ Session session = ACTIVE_SESSIONS.get(playerUUID);
if (session == null || session.getUnsafe(SessionKeys.START) > time) {
return Optional.empty();
}
- try {
- session.endSession(time);
- // Might throw a DBOpException
- // TODO Refactor to use Event transactions when available.
- dbSystem.getDatabase().save().session(uuid, session);
- return Optional.of(session);
- } finally {
- removeSessionFromCache(uuid);
- }
+ removeSessionFromCache(playerUUID);
+ session.endSession(time);
+ return Optional.of(session);
}
- protected void removeSessionFromCache(UUID uuid) {
- ACTIVE_SESSIONS.remove(uuid);
+ protected void removeSessionFromCache(UUID playerUUID) {
+ ACTIVE_SESSIONS.remove(playerUUID);
}
}
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java b/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java
index fa1e738d5..a69b03712 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/operation/SaveOperations.java
@@ -16,8 +16,6 @@
*/
package com.djrapitops.plan.system.database.databases.operation;
-import com.djrapitops.plan.data.container.Session;
-
import java.util.UUID;
/**
@@ -40,7 +38,4 @@ public interface SaveOperations {
@Deprecated
void opStatus(UUID uuid, boolean op);
- @Deprecated
- void session(UUID uuid, Session session);
-
}
\ No newline at end of file
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java b/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java
index ead5b6bf2..e1f6afbd8 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java
@@ -16,10 +16,7 @@
*/
package com.djrapitops.plan.system.database.databases.sql.operation;
-import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.db.SQLDB;
-import com.djrapitops.plan.db.access.queries.DataStoreQueries;
-import com.djrapitops.plan.db.access.transactions.Transaction;
import com.djrapitops.plan.system.database.databases.operation.SaveOperations;
import java.util.UUID;
@@ -45,13 +42,4 @@ public class SQLSaveOps extends SQLOps implements SaveOperations {
userInfoTable.updateOpStatus(uuid, op);
}
- @Override
- public void session(UUID uuid, Session session) {
- db.executeTransaction(new Transaction() {
- @Override
- protected void performOperations() {
- execute(DataStoreQueries.storeSession(session));
- }
- });
- }
}
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/PlayerProcessors.java b/Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/PlayerProcessors.java
index 3f65ab642..c46738308 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/PlayerProcessors.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/system/processing/processors/player/PlayerProcessors.java
@@ -16,7 +16,6 @@
*/
package com.djrapitops.plan.system.processing.processors.player;
-import com.djrapitops.plan.system.cache.SessionCache;
import com.djrapitops.plan.system.database.DBSystem;
import dagger.Lazy;
@@ -34,22 +33,15 @@ import java.util.function.BooleanSupplier;
public class PlayerProcessors {
private final Lazy dbSystem;
- private final Lazy sessionCache;
@Inject
public PlayerProcessors(
- Lazy dbSystem,
- Lazy sessionCache
+ Lazy dbSystem
) {
this.dbSystem = dbSystem;
- this.sessionCache = sessionCache;
}
public BanAndOpProcessor banAndOpProcessor(UUID uuid, BooleanSupplier banned, boolean op) {
return new BanAndOpProcessor(uuid, banned, op, dbSystem.get().getDatabase());
}
-
- public EndSessionProcessor endSessionProcessor(UUID uuid, long time) {
- return new EndSessionProcessor(uuid, time, sessionCache.get());
- }
}
\ No newline at end of file
diff --git a/Plan/common/src/test/java/com/djrapitops/plan/system/cache/SessionCacheTest.java b/Plan/common/src/test/java/com/djrapitops/plan/system/cache/SessionCacheTest.java
index cca57e011..7d833015e 100644
--- a/Plan/common/src/test/java/com/djrapitops/plan/system/cache/SessionCacheTest.java
+++ b/Plan/common/src/test/java/com/djrapitops/plan/system/cache/SessionCacheTest.java
@@ -38,7 +38,7 @@ public class SessionCacheTest {
public void setUp() {
session = new Session(uuid, serverUUID, 12345L, "World1", "SURVIVAL");
- SessionCache sessionCache = new SessionCache(null);
+ SessionCache sessionCache = new SessionCache();
sessionCache.cacheSession(uuid, session);
}
diff --git a/Plan/sponge/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java b/Plan/sponge/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java
index 4fdf4c24b..becbb238f 100644
--- a/Plan/sponge/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java
+++ b/Plan/sponge/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java
@@ -103,19 +103,19 @@ public class SpongePlayerListener {
private void actOnLoginEvent(ClientConnectionEvent.Login event) {
GameProfile profile = event.getProfile();
- UUID uuid = profile.getUniqueId();
+ UUID playerUUID = profile.getUniqueId();
boolean banned = isBanned(profile);
- processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, false));
+ processing.submit(processors.player().banAndOpProcessor(playerUUID, () -> banned, false));
}
@Listener(order = Order.POST)
public void onKick(KickPlayerEvent event) {
try {
- UUID uuid = event.getTargetEntity().getUniqueId();
- if (!status.areKicksCounted() || SpongeAFKListener.AFK_TRACKER.isAfk(uuid)) {
+ UUID playerUUID = event.getTargetEntity().getUniqueId();
+ if (!status.areKicksCounted() || SpongeAFKListener.AFK_TRACKER.isAfk(playerUUID)) {
return;
}
- dbSystem.getDatabase().executeTransaction(new KickStoreTransaction(uuid));
+ dbSystem.getDatabase().executeTransaction(new KickStoreTransaction(playerUUID));
} catch (Exception e) {
errorHandler.log(L.ERROR, this.getClass(), e);
}
@@ -142,11 +142,11 @@ public class SpongePlayerListener {
private void actOnJoinEvent(ClientConnectionEvent.Join event) {
Player player = event.getTargetEntity();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
UUID serverUUID = serverInfo.getServerUUID();
long time = System.currentTimeMillis();
- SpongeAFKListener.AFK_TRACKER.performedAction(uuid, time);
+ SpongeAFKListener.AFK_TRACKER.performedAction(playerUUID, time);
String world = player.getWorld().getName();
Optional gameMode = player.getGameModeData().get(Keys.GAME_MODE);
@@ -163,20 +163,21 @@ public class SpongePlayerListener {
boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS);
if (gatheringGeolocations) {
database.executeTransaction(
- new GeoInfoStoreTransaction(uuid, address, time, geolocationCache::getCountry)
+ new GeoInfoStoreTransaction(playerUUID, address, time, geolocationCache::getCountry)
);
}
- database.executeTransaction(new PlayerServerRegisterTransaction(uuid, () -> time, playerName, serverUUID));
- processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverUUID, time, world, gm)));
+ database.executeTransaction(new PlayerServerRegisterTransaction(playerUUID, () -> time, playerName, serverUUID));
+ sessionCache.cacheSession(playerUUID, new Session(playerUUID, serverUUID, time, world, gm))
+ .ifPresent(previousSession -> database.executeTransaction(new SessionEndTransaction(previousSession)));
- if (!displayName.equals(nicknameCache.getDisplayName(uuid))) {
+ if (!displayName.equals(nicknameCache.getDisplayName(playerUUID))) {
database.executeTransaction(
- new NicknameStoreTransaction(uuid, new Nickname(displayName, time, serverUUID))
+ new NicknameStoreTransaction(playerUUID, new Nickname(displayName, time, serverUUID))
);
}
- processing.submitNonCritical(processors.info().playerPageUpdateProcessor(uuid));
+ processing.submitNonCritical(processors.info().playerPageUpdateProcessor(playerUUID));
}
@Listener(order = Order.POST)
@@ -191,15 +192,18 @@ public class SpongePlayerListener {
private void actOnQuitEvent(ClientConnectionEvent.Disconnect event) {
long time = System.currentTimeMillis();
Player player = event.getTargetEntity();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
- SpongeAFKListener.AFK_TRACKER.loggedOut(uuid, time);
+ SpongeAFKListener.AFK_TRACKER.loggedOut(playerUUID, time);
- nicknameCache.removeDisplayName(uuid);
+ nicknameCache.removeDisplayName(playerUUID);
boolean banned = isBanned(player.getProfile());
- processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, false));
- processing.submit(processors.player().endSessionProcessor(uuid, time));
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ processing.submit(processors.player().banAndOpProcessor(playerUUID, () -> banned, false));
+
+ sessionCache.endSession(playerUUID, time)
+ .ifPresent(endedSession -> dbSystem.getDatabase().executeTransaction(new SessionEndTransaction(endedSession)));
+
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
}
}
\ No newline at end of file
diff --git a/Plan/velocity/src/main/java/com/djrapitops/plan/system/listeners/velocity/PlayerOnlineListener.java b/Plan/velocity/src/main/java/com/djrapitops/plan/system/listeners/velocity/PlayerOnlineListener.java
index 9ba7bb8fb..924ae6ac4 100644
--- a/Plan/velocity/src/main/java/com/djrapitops/plan/system/listeners/velocity/PlayerOnlineListener.java
+++ b/Plan/velocity/src/main/java/com/djrapitops/plan/system/listeners/velocity/PlayerOnlineListener.java
@@ -87,24 +87,24 @@ public class PlayerOnlineListener {
public void onPostLogin(PostLoginEvent event) {
try {
Player player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
String name = player.getUsername();
InetAddress address = player.getRemoteAddress().getAddress();
long time = System.currentTimeMillis();
- sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, null, null));
+ sessionCache.cacheSession(playerUUID, new Session(playerUUID, serverInfo.getServerUUID(), time, null, null));
Database database = dbSystem.getDatabase();
boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS);
if (gatheringGeolocations) {
database.executeTransaction(
- new GeoInfoStoreTransaction(uuid, address, time, geolocationCache::getCountry)
+ new GeoInfoStoreTransaction(playerUUID, address, time, geolocationCache::getCountry)
);
}
- database.executeTransaction(new PlayerRegisterTransaction(uuid, () -> time, name));
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ database.executeTransaction(new PlayerRegisterTransaction(playerUUID, () -> time, name));
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID()));
} catch (Exception e) {
errorHandler.log(L.WARN, this.getClass(), e);
@@ -115,10 +115,10 @@ public class PlayerOnlineListener {
public void onLogout(DisconnectEvent event) {
try {
Player player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
- sessionCache.endSession(uuid, System.currentTimeMillis());
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ sessionCache.endSession(playerUUID, System.currentTimeMillis());
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
ResponseCache.clearResponse(PageId.SERVER.of(serverInfo.getServerUUID()));
} catch (Exception e) {
errorHandler.log(L.WARN, this.getClass(), e);
@@ -129,12 +129,13 @@ public class PlayerOnlineListener {
public void onServerSwitch(ServerConnectedEvent event) {
try {
Player player = event.getPlayer();
- UUID uuid = player.getUniqueId();
+ UUID playerUUID = player.getUniqueId();
+ long time = System.currentTimeMillis();
- long now = System.currentTimeMillis();
// Replaces the current session in the cache.
- sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), now, null, null));
- processing.submit(processors.info().playerPageUpdateProcessor(uuid));
+ sessionCache.cacheSession(playerUUID, new Session(playerUUID, serverInfo.getServerUUID(), time, null, null));
+
+ processing.submit(processors.info().playerPageUpdateProcessor(playerUUID));
} catch (Exception e) {
errorHandler.log(L.WARN, this.getClass(), e);
}