diff --git a/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java b/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java index 5f9cfb696..7c6cc7630 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/cache/SessionCache.java @@ -60,7 +60,7 @@ public class SessionCache { * @param uuid UUID of the player. * @return Session or null if not cached. */ - public Optional getSession(UUID uuid) { + public Optional getCachedSession(UUID uuid) { Session session = activeSessions.get(uuid); if (session != null) { return Optional.of(session); diff --git a/Plan/src/main/java/com/djrapitops/plan/data/handling/player/KillProcessor.java b/Plan/src/main/java/com/djrapitops/plan/data/handling/player/KillProcessor.java index 94f0c8fe2..3880c456f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/handling/player/KillProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/handling/player/KillProcessor.java @@ -12,6 +12,8 @@ import java.util.UUID; /** * Processor Class for KillEvent information when the killer is a * player. + *

+ * Adds KillData or a Mob kill to the active Session. * * @author Rsl1122 * @since 4.0.0 @@ -43,7 +45,7 @@ public class KillProcessor extends PlayerProcessor { Plan plugin = Plan.getInstance(); - Optional cachedSession = plugin.getDataCache().getSession(uuid); + Optional cachedSession = plugin.getDataCache().getCachedSession(uuid); if (!cachedSession.isPresent()) { return; } diff --git a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanGamemodeChangeListener.java b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanGamemodeChangeListener.java index bf55f5ce1..4bfe743e5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanGamemodeChangeListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanGamemodeChangeListener.java @@ -1,8 +1,7 @@ package main.java.com.djrapitops.plan.data.listeners; import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.handling.info.InfoType; -import main.java.com.djrapitops.plan.data.handling.info.PlaytimeDependentInfo; +import main.java.com.djrapitops.plan.data.Session; import main.java.com.djrapitops.plan.utilities.MiscUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -10,6 +9,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerGameModeChangeEvent; +import java.util.Optional; import java.util.UUID; /** @@ -40,13 +40,16 @@ public class PlanGamemodeChangeListener implements Listener { if (event.isCancelled()) { return; } - Player p = event.getPlayer(); UUID uuid = p.getUniqueId(); long time = MiscUtils.getTime(); String gameMode = event.getNewGameMode().name(); String worldName = p.getWorld().getName(); - plugin.addToProcessQueue(new PlaytimeDependentInfo(uuid, InfoType.GM, time, gameMode, worldName)); + Optional cachedSession = plugin.getDataCache().getCachedSession(uuid); + if (cachedSession.isPresent()) { + Session session = cachedSession.get(); + session.changeState(worldName, gameMode, time); + } } }