diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index fc3e7f8dd..2ad6877a7 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -92,7 +92,7 @@ public class PlayerObject extends IntangibleObject { private long petId = 0; private SWGList petAbilities = new SWGList<>(BaselineType.PLAY, 9, 21); private SWGList activePetAbilities = new SWGList<>(BaselineType.PLAY, 9, 22); - + private int startPlayTime; public PlayerObject(long objectId) { super(objectId); @@ -539,4 +539,12 @@ public class PlayerObject extends IntangibleObject { public void sendDelta(int type, int update, Object value, StringType strType) { sendDelta(BaselineType.PLAY, type, update, value, strType); } + + public int getStartPlayTime() { + return startPlayTime; + } + + public void setStartPlayTime(int startPlayTime) { + this.startPlayTime = startPlayTime; + } } diff --git a/src/services/galaxy/ConnectionService.java b/src/services/galaxy/ConnectionService.java index 46d3ec653..b7333043c 100644 --- a/src/services/galaxy/ConnectionService.java +++ b/src/services/galaxy/ConnectionService.java @@ -43,6 +43,7 @@ import intents.GalacticPacketIntent; import intents.PlayerEventIntent; import resources.control.Intent; import resources.control.Service; +import resources.objects.player.PlayerObject; import resources.player.Player; import resources.player.PlayerEvent; import resources.player.PlayerFlags; @@ -160,6 +161,14 @@ public class ConnectionService extends Service { } private void logOut(Player p) { + PlayerObject playerObject = p.getPlayerObject(); + int currentTime = playerObject.getPlayTime(); + int startTime = playerObject.getStartPlayTime(); + int deltaTime = (int) ((System.currentTimeMillis()) - startTime); + int newTotalTime = currentTime + (int) TimeUnit.MILLISECONDS.toSeconds(deltaTime); + + playerObject.setPlayTime(newTotalTime); + if (p.getPlayerState() != PlayerState.LOGGED_OUT) System.out.println("[" + p.getUsername() +"] Logged out " + p.getCharacterName()); p.getPlayerObject().setFlagBitmask(PlayerFlags.LD); diff --git a/src/services/objects/ObjectManager.java b/src/services/objects/ObjectManager.java index da1c92a91..a5b571b1b 100644 --- a/src/services/objects/ObjectManager.java +++ b/src/services/objects/ObjectManager.java @@ -355,6 +355,7 @@ public class ObjectManager extends Manager { return; player.setPlayerState(PlayerState.ZONING_IN); verifyPlayerObjectsSet(player, characterId); + player.getPlayerObject().setStartPlayTime((int) System.currentTimeMillis()); CreatureObject creature = player.getCreatureObject(); creature.setMoodId(CreatureMood.NONE.getMood());