Class PlaytimeTracker
java.lang.Object
com.haven.havenplugin.playtime.PlaytimeTracker
-
Constructor Summary
ConstructorsConstructorDescriptionPlaytimeTracker(Main plugin, PlaytimeConfig config, PlaytimeStorage storage) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddActiveTime(UUID uuid, long delta, Consumer<Boolean> callback) voidcheckOfflineSessions(long nowSec) voiddoTick(long nowMs, int elapsedSec) getPlayerInfo(UUID uuid) getSession(UUID uuid) voidgetTopPlayers(boolean sortByAfk, Consumer<Map<String, Long>> callback) voidhandleJoin(org.bukkit.entity.Player player) Handle a player joining.voidhandleQuit(org.bukkit.entity.Player player) Handle a player quitting or being kicked.booleanvoidmarkActivity(UUID uuid) voidsaveAll()voidsetActiveTime(UUID uuid, long seconds, Consumer<Boolean> callback) voidsetAfkTime(UUID uuid, long seconds, Consumer<Boolean> callback) voidshutdown()
-
Constructor Details
-
PlaytimeTracker
-
-
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 (disconnectTimeset 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
-
saveAll
public void saveAll() -
getActiveSessionSummaries
-
shutdown
public void shutdown() -
setActiveTime
-
setAfkTime
-
addActiveTime
-
getPlayerInfo
-
getSession
-
isAfk
-
getTopPlayers
-