diff --git a/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/PlayerDataManager.java b/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/PlayerDataManager.java
index 9aebbd2..94c1ed9 100644
--- a/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/PlayerDataManager.java
+++ b/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/PlayerDataManager.java
@@ -16,6 +16,7 @@ import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import com.google.common.net.InetAddresses;
import com.imaginarycode.minecraft.redisbungee.api.events.IPlayerChangedServerNetworkEvent;
+import com.imaginarycode.minecraft.redisbungee.api.events.IPlayerJoinedNetworkEvent;
import com.imaginarycode.minecraft.redisbungee.api.events.IPlayerLeftNetworkEvent;
import com.imaginarycode.minecraft.redisbungee.api.events.IPubSubMessageEvent;
import com.imaginarycode.minecraft.redisbungee.api.tasks.RedisPipelineTask;
@@ -34,7 +35,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
-public abstract class PlayerDataManager
{
+public abstract class PlayerDataManager
{
protected final RedisBungeePlugin
plugin;
private final Object SERVERS_TO_PLAYERS_KEY = new Object();
@@ -45,6 +46,7 @@ public abstract class PlayerDataManager
lastServerCache = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).build(this::getLastServerFromRedis);
private final LoadingCache proxyCache = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).build(this::getProxyFromRedis);
private final LoadingCache ipCache = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).build(this::getIpAddressFromRedis);
+ private final LoadingCache lastOnlineCache = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).build(this::getLastOnlineFromRedis);
private final LoadingCache