diff --git a/application/InstancePageProvider.h b/application/InstancePageProvider.h index 79bdb71b..1da4c9f1 100644 --- a/application/InstancePageProvider.h +++ b/application/InstancePageProvider.h @@ -56,12 +56,11 @@ public: values.append(new NotesPage(legacy.get())); values.append(new ScreenshotsPage(PathCombine(legacy->minecraftRoot(), "screenshots"))); values.append(new InstanceSettingsPage(legacy.get())); - values.append(new OtherLogsPage(legacy->minecraftRoot(), inst->getLogFileMatcher())); } auto logMatcher = inst->getLogFileMatcher(); if(logMatcher) { - values.append(new OtherLogsPage(onesix->minecraftRoot(), logMatcher)); + values.append(new OtherLogsPage(inst->getLogFileRoot(), logMatcher)); } return values; } diff --git a/logic/BaseInstance.h b/logic/BaseInstance.h index bcd1e0da..070a9838 100644 --- a/logic/BaseInstance.h +++ b/logic/BaseInstance.h @@ -169,6 +169,11 @@ public: */ virtual IPathMatcher::Ptr getLogFileMatcher() = 0; + /*! + * Returns the root folder to use for looking up log files + */ + virtual QString getLogFileRoot() = 0; + /*! * does any necessary cleanups after the instance finishes. also runs before\ * TODO: turn into a task that can run asynchronously diff --git a/logic/NullInstance.h b/logic/NullInstance.h index 9ddbc2b2..ebfe4f56 100644 --- a/logic/NullInstance.h +++ b/logic/NullInstance.h @@ -74,4 +74,8 @@ public: { return nullptr; } + virtual QString getLogFileRoot() + { + return instanceRoot(); + } }; diff --git a/logic/RecursiveFileSystemWatcher.cpp b/logic/RecursiveFileSystemWatcher.cpp index 1253870b..59c3f0f0 100644 --- a/logic/RecursiveFileSystemWatcher.cpp +++ b/logic/RecursiveFileSystemWatcher.cpp @@ -86,11 +86,11 @@ QStringList RecursiveFileSystemWatcher::scanRecursive(const QDir &directory) { return {}; } - for (const QString &dir : directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) + for (const QString &dir : directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden)) { ret.append(scanRecursive(directory.absoluteFilePath(dir))); } - for (const QString &file : directory.entryList(QDir::Files)) + for (const QString &file : directory.entryList(QDir::Files | QDir::Hidden)) { auto relPath = m_root.relativeFilePath(directory.absoluteFilePath(file)); if (m_matcher->matches(relPath)) diff --git a/logic/minecraft/MinecraftInstance.cpp b/logic/minecraft/MinecraftInstance.cpp index 50962452..c3d73456 100644 --- a/logic/minecraft/MinecraftInstance.cpp +++ b/logic/minecraft/MinecraftInstance.cpp @@ -284,7 +284,14 @@ IPathMatcher::Ptr MinecraftInstance::getLogFileMatcher() auto combined = std::make_shared(); combined->add(std::make_shared(".*\\.log(\\.[0-9]*)?(\\.gz)?$")); combined->add(std::make_shared("crash-.*\\.txt")); + combined->add(std::make_shared("IDMap dump.*\\.txt$")); + combined->add(std::make_shared("ModLoader\\.txt(\\..*)?$")); return combined; } +QString MinecraftInstance::getLogFileRoot() +{ + return minecraftRoot(); +} + #include "MinecraftInstance.moc" diff --git a/logic/minecraft/MinecraftInstance.h b/logic/minecraft/MinecraftInstance.h index a09e44db..39a51b9a 100644 --- a/logic/minecraft/MinecraftInstance.h +++ b/logic/minecraft/MinecraftInstance.h @@ -46,6 +46,8 @@ public: virtual IPathMatcher::Ptr getLogFileMatcher() override; + virtual QString getLogFileRoot() override; + protected: QMap createCensorFilterFromSession(AuthSessionPtr session); };