Handle player last active time

This commit is contained in:
Melledy
2023-11-23 01:18:56 -08:00
parent f2be0d9942
commit 65ffd2ba8b
2 changed files with 14 additions and 2 deletions

View File

@@ -99,6 +99,7 @@ public class Player {
private int entryId; private int entryId;
private IntSet unlockedHeadIcons; private IntSet unlockedHeadIcons;
private long lastActiveTime;
// Player managers // Player managers
private transient GameSession session; private transient GameSession session;
@@ -649,10 +650,16 @@ public class Player {
this.enterScene(GameConstants.START_ENTRY_ID, 0, false); this.enterScene(GameConstants.START_ENTRY_ID, 0, false);
} }
// Set flag // Set logged in flag
this.lastActiveTime = System.currentTimeMillis() / 1000;
this.loggedIn = true; this.loggedIn = true;
} }
public void onLogout() {
this.loggedIn = false;
this.lastActiveTime = System.currentTimeMillis() / 1000;
}
// Database // Database
public void save() { public void save() {
@@ -726,6 +733,7 @@ public class Player {
.setLevel(this.getLevel()) .setLevel(this.getLevel())
.setOnlineStatus(this.isOnline() ? FriendOnlineStatus.FRIEND_ONLINE_STATUS_ONLINE : FriendOnlineStatus.FRIEND_ONLINE_STATUS_OFFLINE) .setOnlineStatus(this.isOnline() ? FriendOnlineStatus.FRIEND_ONLINE_STATUS_ONLINE : FriendOnlineStatus.FRIEND_ONLINE_STATUS_OFFLINE)
.setPlatformType(PlatformType.PC) .setPlatformType(PlatformType.PC)
.setLastActiveTime(this.getLastActiveTime())
.setSimpleAvatarInfo(SimpleAvatarInfo.newInstance().setAvatarId(GameConstants.TRAILBLAZER_AVATAR_ID).setLevel(1)) // TODO .setSimpleAvatarInfo(SimpleAvatarInfo.newInstance().setAvatarId(GameConstants.TRAILBLAZER_AVATAR_ID).setLevel(1)) // TODO
.setHeadIcon(this.getHeadIcon()); .setHeadIcon(this.getHeadIcon());

View File

@@ -80,9 +80,13 @@ public class GameSession {
this.state = SessionState.INACTIVE; this.state = SessionState.INACTIVE;
if (player != null) { if (player != null) {
// Handle player logout event
player.onLogout();
// Save first // Save first
player.save(); player.save();
// Deregister
// Deregister player from server
this.getServer().deregisterPlayer(player); this.getServer().deregisterPlayer(player);
} }
} }