Class PlaytimeTracker

java.lang.Object
com.haven.havenplugin.playtime.PlaytimeTracker

public class PlaytimeTracker extends Object
  • Constructor Details

  • Method Details

    • doTick

      public void doTick(long nowMs, int elapsedSec)
    • checkOfflineSessions

      public void checkOfflineSessions(long nowSec)
    • handleJoin

      public void handleJoin(org.bukkit.entity.Player player)
      Handle a player joining. If the player has a session still within the close-delay window (disconnectTime set but tick hasn't finalised it yet), the session is resumed in-place — no disk I/O needed. Otherwise data is loaded asynchronously and the new session is started once the load completes.
    • handleQuit

      public void handleQuit(org.bukkit.entity.Player player)
      Handle a player quitting or being kicked. Records the disconnect time; The session will be finalized once the hysteresis is elapsed
    • markActivity

      public void markActivity(UUID uuid)
    • saveAll

      public void saveAll()
    • getActiveSessionSummaries

      public Map<UUID,long[]> getActiveSessionSummaries()
    • shutdown

      public void shutdown()
    • setActiveTime

      public void setActiveTime(UUID uuid, long seconds, Consumer<Boolean> callback)
    • setAfkTime

      public void setAfkTime(UUID uuid, long seconds, Consumer<Boolean> callback)
    • addActiveTime

      public void addActiveTime(UUID uuid, long delta, Consumer<Boolean> callback)
    • getPlayerInfo

      public PlayerInfo getPlayerInfo(UUID uuid)
    • getSession

      public SessionData getSession(UUID uuid)
    • isAfk

      public boolean isAfk(UUID uuid)
    • getTopPlayers

      public void getTopPlayers(boolean sortByAfk, Consumer<Map<String,Long>> callback)