diff options
| author | Jamie Mansfield <jmansfield@cadixdev.org> | 2021-07-13 16:59:33 +0100 | 
|---|---|---|
| committer | Jamie Mansfield <jmansfield@cadixdev.org> | 2021-07-13 17:01:53 +0100 | 
| commit | 74f5255eef8b14455ca741c5004a97cd00fed667 (patch) | |
| tree | 5b319e37df6501ce607c9435aedae8243734da77 /api/logic | |
| parent | d63ef939bec200f9c510cbc2ae50531802ff7bfc (diff) | |
| download | PrismLauncher-74f5255eef8b14455ca741c5004a97cd00fed667.tar.gz PrismLauncher-74f5255eef8b14455ca741c5004a97cd00fed667.tar.bz2 PrismLauncher-74f5255eef8b14455ca741c5004a97cd00fed667.zip | |
GH-3930 Track duration of previous game sessions
Diffstat (limited to 'api/logic')
| -rw-r--r-- | api/logic/BaseInstance.cpp | 17 | ||||
| -rw-r--r-- | api/logic/BaseInstance.h | 1 | ||||
| -rw-r--r-- | api/logic/minecraft/MinecraftInstance.cpp | 10 | 
3 files changed, 25 insertions, 3 deletions
| diff --git a/api/logic/BaseInstance.cpp b/api/logic/BaseInstance.cpp index cff16631..46b45827 100644 --- a/api/logic/BaseInstance.cpp +++ b/api/logic/BaseInstance.cpp @@ -37,6 +37,7 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s      m_settings->registerSetting("notes", "");      m_settings->registerSetting("lastLaunchTime", 0);      m_settings->registerSetting("totalTimePlayed", 0); +    m_settings->registerSetting("lastTimePlayed", 0);      // Custom Commands      auto commandSetting = m_settings->registerSetting({"OverrideCommands","OverrideLaunchCmd"}, false); @@ -146,9 +147,12 @@ void BaseInstance::setRunning(bool running)      }      else      { -        qint64 current = settings()->get("totalTimePlayed").toLongLong();          QDateTime timeEnded = QDateTime::currentDateTime(); + +        qint64 current = settings()->get("totalTimePlayed").toLongLong();          settings()->set("totalTimePlayed", current + m_timeStarted.secsTo(timeEnded)); +        settings()->set("lastTimePlayed", m_timeStarted.secsTo(timeEnded)); +          emit propertiesChanged(this);      } @@ -166,9 +170,20 @@ int64_t BaseInstance::totalTimePlayed() const      return current;  } +int64_t BaseInstance::lastTimePlayed() const +{ +    if(m_isRunning) +    { +        QDateTime timeNow = QDateTime::currentDateTime(); +        return m_timeStarted.secsTo(timeNow); +    } +    return settings()->get("lastTimePlayed").toLongLong(); +} +  void BaseInstance::resetTimePlayed()  {      settings()->reset("totalTimePlayed"); +    settings()->reset("lastTimePlayed");  }  QString BaseInstance::instanceType() const diff --git a/api/logic/BaseInstance.h b/api/logic/BaseInstance.h index 64de4bb3..d250e03e 100644 --- a/api/logic/BaseInstance.h +++ b/api/logic/BaseInstance.h @@ -87,6 +87,7 @@ public:      void setRunning(bool running);      bool isRunning() const;      int64_t totalTimePlayed() const; +    int64_t lastTimePlayed() const;      void resetTimePlayed();      /// get the type of this instance diff --git a/api/logic/minecraft/MinecraftInstance.cpp b/api/logic/minecraft/MinecraftInstance.cpp index ea1e47b6..dbf9f816 100644 --- a/api/logic/minecraft/MinecraftInstance.cpp +++ b/api/logic/minecraft/MinecraftInstance.cpp @@ -798,9 +798,15 @@ QString MinecraftInstance::getStatusbarDescription()      QString description;      description.append(tr("Minecraft %1 (%2)").arg(m_components->getComponentVersion("net.minecraft")).arg(typeName())); -    if(m_settings->get("ShowGameTime").toBool() && totalTimePlayed() > 0) +    if(m_settings->get("ShowGameTime").toBool())      { -        description.append(tr(", played for %1").arg(prettifyTimeDuration(totalTimePlayed()))); +        if (lastTimePlayed() > 0) { +            description.append(tr(", last played for %1").arg(prettifyTimeDuration(lastTimePlayed()))); +        } + +        if (totalTimePlayed() > 0) { +            description.append(tr(", total played for %1").arg(prettifyTimeDuration(totalTimePlayed()))); +        }      }      if(hasCrashed())      { | 
