Remove all log statements
Because THEY were causing the lag?????????
This commit is contained in:
130
lib/mod.dart
130
lib/mod.dart
@@ -59,28 +59,28 @@ class Mod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Mod fromDirectory(String path, {bool skipFileCount = false}) {
|
static Mod fromDirectory(String path, {bool skipFileCount = false}) {
|
||||||
final logger = Logger.instance;
|
// final logger = Logger.instance;
|
||||||
final stopwatch = Stopwatch()..start();
|
// final stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
logger.info('Attempting to load mod from directory: $path');
|
// logger.info('Attempting to load mod from directory: $path');
|
||||||
final aboutFile = File('$path/About/About.xml');
|
final aboutFile = File('$path/About/About.xml');
|
||||||
if (!aboutFile.existsSync()) {
|
if (!aboutFile.existsSync()) {
|
||||||
logger.error('About.xml file does not exist in $aboutFile');
|
// logger.error('About.xml file does not exist in $aboutFile');
|
||||||
throw Exception('About.xml file does not exist in $aboutFile');
|
throw Exception('About.xml file does not exist in $aboutFile');
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info('Parsing About.xml file...');
|
// logger.info('Parsing About.xml file...');
|
||||||
final aboutXml = XmlDocument.parse(aboutFile.readAsStringSync());
|
final aboutXml = XmlDocument.parse(aboutFile.readAsStringSync());
|
||||||
final xmlTime = stopwatch.elapsedMilliseconds;
|
// final xmlTime = stopwatch.elapsedMilliseconds;
|
||||||
|
|
||||||
late final XmlElement metadata;
|
late final XmlElement metadata;
|
||||||
try {
|
try {
|
||||||
metadata = findCaseInsensitiveDoc(aboutXml, 'ModMetaData');
|
metadata = findCaseInsensitiveDoc(aboutXml, 'ModMetaData');
|
||||||
logger.info('Successfully found ModMetaData in About.xml');
|
// logger.info('Successfully found ModMetaData in About.xml');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(
|
// logger.error(
|
||||||
'Error: ModMetaData element is missing in About.xml ($aboutFile). Original error: $e',
|
// 'Error: ModMetaData element is missing in About.xml ($aboutFile). Original error: $e',
|
||||||
);
|
// );
|
||||||
throw Exception(
|
throw Exception(
|
||||||
'Error: ModMetaData element is missing in About.xml ($aboutFile). Original error: $e',
|
'Error: ModMetaData element is missing in About.xml ($aboutFile). Original error: $e',
|
||||||
);
|
);
|
||||||
@@ -89,11 +89,11 @@ class Mod {
|
|||||||
late final String name;
|
late final String name;
|
||||||
try {
|
try {
|
||||||
name = metadata.findElements('name').first.innerText;
|
name = metadata.findElements('name').first.innerText;
|
||||||
logger.info('Mod name found: $name');
|
// logger.info('Mod name found: $name');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(
|
// logger.error(
|
||||||
'Error: name element is missing in ModMetaData ($aboutFile). Original error: $e',
|
// 'Error: name element is missing in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
// );
|
||||||
throw Exception(
|
throw Exception(
|
||||||
'Error: name element is missing in ModMetaData ($aboutFile). Original error: $e',
|
'Error: name element is missing in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
);
|
||||||
@@ -102,11 +102,11 @@ class Mod {
|
|||||||
late final String id;
|
late final String id;
|
||||||
try {
|
try {
|
||||||
id = metadata.findElements('packageId').first.innerText.toLowerCase();
|
id = metadata.findElements('packageId').first.innerText.toLowerCase();
|
||||||
logger.info('Mod ID found: $id');
|
// logger.info('Mod ID found: $id');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(
|
// logger.error(
|
||||||
'Error: packageId element is missing in ModMetaData ($aboutFile). Original error: $e',
|
// 'Error: packageId element is missing in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
// );
|
||||||
throw Exception(
|
throw Exception(
|
||||||
'Error: packageId element is missing in ModMetaData ($aboutFile). Original error: $e',
|
'Error: packageId element is missing in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
);
|
||||||
@@ -121,11 +121,11 @@ class Mod {
|
|||||||
.findElements('li')
|
.findElements('li')
|
||||||
.map((e) => e.innerText)
|
.map((e) => e.innerText)
|
||||||
.toList();
|
.toList();
|
||||||
logger.info('Supported versions found: ${versions.join(", ")}');
|
// logger.info('Supported versions found: ${versions.join(", ")}');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error(
|
// logger.error(
|
||||||
'Error: supportedVersions or li elements are missing in ModMetaData ($aboutFile). Original error: $e',
|
// 'Error: supportedVersions or li elements are missing in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
// );
|
||||||
throw Exception(
|
throw Exception(
|
||||||
'Error: supportedVersions or li elements are missing in ModMetaData ($aboutFile). Original error: $e',
|
'Error: supportedVersions or li elements are missing in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
);
|
||||||
@@ -134,11 +134,11 @@ class Mod {
|
|||||||
String description = '';
|
String description = '';
|
||||||
try {
|
try {
|
||||||
description = metadata.findElements('description').first.innerText;
|
description = metadata.findElements('description').first.innerText;
|
||||||
logger.info('Mod description found: $description');
|
// logger.info('Mod description found: $description');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Description element is missing in ModMetaData ($aboutFile).',
|
// 'Description element is missing in ModMetaData ($aboutFile).',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> dependencies = [];
|
List<String> dependencies = [];
|
||||||
@@ -156,11 +156,11 @@ class Mod {
|
|||||||
e.findElements("packageId").first.innerText.toLowerCase(),
|
e.findElements("packageId").first.innerText.toLowerCase(),
|
||||||
)
|
)
|
||||||
.toList();
|
.toList();
|
||||||
logger.info('Dependencies found: ${dependencies.join(", ")}');
|
// logger.info('Dependencies found: ${dependencies.join(", ")}');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Dependencies element is missing in ModMetaData ($aboutFile).',
|
// 'Dependencies element is missing in ModMetaData ($aboutFile).',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> loadAfter = [];
|
List<String> loadAfter = [];
|
||||||
@@ -172,13 +172,13 @@ class Mod {
|
|||||||
.findElements('li')
|
.findElements('li')
|
||||||
.map((e) => e.innerText.toLowerCase())
|
.map((e) => e.innerText.toLowerCase())
|
||||||
.toList();
|
.toList();
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Load after dependencies found: ${loadAfter.isNotEmpty ? loadAfter.join(", ") : "none"}',
|
// 'Load after dependencies found: ${loadAfter.isNotEmpty ? loadAfter.join(", ") : "none"}',
|
||||||
);
|
// );
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Load after element is missing or empty in ModMetaData ($aboutFile). Original error: $e',
|
// 'Load after element is missing or empty in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
List<String> loadAfterForce = [];
|
List<String> loadAfterForce = [];
|
||||||
try {
|
try {
|
||||||
@@ -189,13 +189,13 @@ class Mod {
|
|||||||
.findElements('li')
|
.findElements('li')
|
||||||
.map((e) => e.innerText.toLowerCase())
|
.map((e) => e.innerText.toLowerCase())
|
||||||
.toList();
|
.toList();
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Force load after dependencies found: ${loadAfterForce.isNotEmpty ? loadAfterForce.join(", ") : "none"}',
|
// 'Force load after dependencies found: ${loadAfterForce.isNotEmpty ? loadAfterForce.join(", ") : "none"}',
|
||||||
);
|
// );
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Force load after element is missing or empty in ModMetaData ($aboutFile). Original error: $e',
|
// 'Force load after element is missing or empty in ModMetaData ($aboutFile). Original error: $e',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
dependencies.addAll(loadAfterForce);
|
dependencies.addAll(loadAfterForce);
|
||||||
|
|
||||||
@@ -208,13 +208,13 @@ class Mod {
|
|||||||
.findElements('li')
|
.findElements('li')
|
||||||
.map((e) => e.innerText.toLowerCase())
|
.map((e) => e.innerText.toLowerCase())
|
||||||
.toList();
|
.toList();
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Load before dependencies found: ${loadBefore.isNotEmpty ? loadBefore.join(", ") : "none"}',
|
// 'Load before dependencies found: ${loadBefore.isNotEmpty ? loadBefore.join(", ") : "none"}',
|
||||||
);
|
// );
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Load before element is missing or empty in ModMetaData ($aboutFile). Original error: $e ',
|
// 'Load before element is missing or empty in ModMetaData ($aboutFile). Original error: $e ',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> incompatibilities = [];
|
List<String> incompatibilities = [];
|
||||||
@@ -226,14 +226,14 @@ class Mod {
|
|||||||
.findElements('li')
|
.findElements('li')
|
||||||
.map((e) => e.innerText.toLowerCase())
|
.map((e) => e.innerText.toLowerCase())
|
||||||
.toList();
|
.toList();
|
||||||
logger.info('Incompatibilities found: ${incompatibilities.join(", ")}');
|
// logger.info('Incompatibilities found: ${incompatibilities.join(", ")}');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Incompatibilities element is missing in ModMetaData ($aboutFile).',
|
// 'Incompatibilities element is missing in ModMetaData ($aboutFile).',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
final metadataTime = stopwatch.elapsedMilliseconds - xmlTime;
|
// final metadataTime = stopwatch.elapsedMilliseconds - xmlTime;
|
||||||
|
|
||||||
int size = 0;
|
int size = 0;
|
||||||
if (!skipFileCount) {
|
if (!skipFileCount) {
|
||||||
@@ -273,9 +273,9 @@ class Mod {
|
|||||||
: vA[1] - vB[1]; // Compare major, then minor version
|
: vA[1] - vB[1]; // Compare major, then minor version
|
||||||
});
|
});
|
||||||
latestVersionDir = versionDirs.last;
|
latestVersionDir = versionDirs.last;
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Latest version directory found: ${latestVersionDir.path.split(Platform.pathSeparator).last}',
|
// 'Latest version directory found: ${latestVersionDir.path.split(Platform.pathSeparator).last}',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count all files, excluding older version directories
|
// Count all files, excluding older version directories
|
||||||
@@ -299,19 +299,19 @@ class Mod {
|
|||||||
return true;
|
return true;
|
||||||
}).length;
|
}).length;
|
||||||
|
|
||||||
logger.info(
|
// logger.info(
|
||||||
'File count in mod directory (with only latest version): $size',
|
// 'File count in mod directory (with only latest version): $size',
|
||||||
);
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
final fileCountTime =
|
// final fileCountTime =
|
||||||
stopwatch.elapsedMilliseconds - metadataTime - xmlTime;
|
// stopwatch.elapsedMilliseconds - metadataTime - xmlTime;
|
||||||
final totalTime = stopwatch.elapsedMilliseconds;
|
// final totalTime = stopwatch.elapsedMilliseconds;
|
||||||
|
|
||||||
// Log detailed timing information
|
// Log detailed timing information
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Mod $name timing: XML=${xmlTime}ms, Metadata=${metadataTime}ms, FileCount=${fileCountTime}ms, Total=${totalTime}ms',
|
// 'Mod $name timing: XML=${xmlTime}ms, Metadata=${metadataTime}ms, FileCount=${fileCountTime}ms, Total=${totalTime}ms',
|
||||||
);
|
// );
|
||||||
|
|
||||||
return Mod(
|
return Mod(
|
||||||
name: name,
|
name: name,
|
||||||
|
@@ -131,13 +131,13 @@ class ModList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Stream<Mod> loadAvailable({bool skipExistingSizes = false}) async* {
|
Stream<Mod> loadAvailable({bool skipExistingSizes = false}) async* {
|
||||||
final logger = Logger.instance;
|
// final logger = Logger.instance;
|
||||||
final stopwatch = Stopwatch()..start();
|
// final stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
final directory = Directory(modsPath);
|
final directory = Directory(modsPath);
|
||||||
|
|
||||||
if (!directory.existsSync()) {
|
if (!directory.existsSync()) {
|
||||||
logger.error('Error: Mods root directory does not exist: $modsPath');
|
// logger.error('Error: Mods root directory does not exist: $modsPath');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,28 +145,28 @@ class ModList {
|
|||||||
final List<String> modDirectories =
|
final List<String> modDirectories =
|
||||||
entities.whereType<Directory>().map((dir) => dir.path).toList();
|
entities.whereType<Directory>().map((dir) => dir.path).toList();
|
||||||
|
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Found ${modDirectories.length} mod directories (${stopwatch.elapsedMilliseconds}ms)',
|
// 'Found ${modDirectories.length} mod directories (${stopwatch.elapsedMilliseconds}ms)',
|
||||||
);
|
// );
|
||||||
|
|
||||||
for (final modDir in modDirectories) {
|
for (final modDir in modDirectories) {
|
||||||
try {
|
try {
|
||||||
final modStart = stopwatch.elapsedMilliseconds;
|
// final modStart = stopwatch.elapsedMilliseconds;
|
||||||
|
|
||||||
// Check if this directory contains a valid mod
|
// Check if this directory contains a valid mod
|
||||||
final aboutFile = File('$modDir/About/About.xml');
|
final aboutFile = File('$modDir/About/About.xml');
|
||||||
if (!aboutFile.existsSync()) {
|
if (!aboutFile.existsSync()) {
|
||||||
logger.warning('No About.xml found in directory: $modDir');
|
// logger.warning('No About.xml found in directory: $modDir');
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
final mod = Mod.fromDirectory(modDir, skipFileCount: skipExistingSizes);
|
final mod = Mod.fromDirectory(modDir, skipFileCount: skipExistingSizes);
|
||||||
logger.info('Loaded mod from directory: ${mod.name} (ID: ${mod.id})');
|
// logger.info('Loaded mod from directory: ${mod.name} (ID: ${mod.id})');
|
||||||
|
|
||||||
if (mods.containsKey(mod.id)) {
|
if (mods.containsKey(mod.id)) {
|
||||||
logger.warning(
|
// logger.warning(
|
||||||
'Mod ${mod.id} already exists in mods list, overwriting',
|
// 'Mod ${mod.id} already exists in mods list, overwriting',
|
||||||
);
|
// );
|
||||||
final existingMod = mods[mod.id]!;
|
final existingMod = mods[mod.id]!;
|
||||||
mods[mod.id] = Mod(
|
mods[mod.id] = Mod(
|
||||||
name: mod.name,
|
name: mod.name,
|
||||||
@@ -183,20 +183,20 @@ class ModList {
|
|||||||
isBaseGame: existingMod.isBaseGame,
|
isBaseGame: existingMod.isBaseGame,
|
||||||
isExpansion: existingMod.isExpansion,
|
isExpansion: existingMod.isExpansion,
|
||||||
);
|
);
|
||||||
logger.info('Updated existing mod: ${mod.name} (ID: ${mod.id})');
|
// logger.info('Updated existing mod: ${mod.name} (ID: ${mod.id})');
|
||||||
} else {
|
} else {
|
||||||
mods[mod.id] = mod;
|
mods[mod.id] = mod;
|
||||||
logger.info('Added new mod: ${mod.name} (ID: ${mod.id})');
|
// logger.info('Added new mod: ${mod.name} (ID: ${mod.id})');
|
||||||
}
|
}
|
||||||
|
|
||||||
final modTime = stopwatch.elapsedMilliseconds - modStart;
|
// final modTime = stopwatch.elapsedMilliseconds - modStart;
|
||||||
logger.info(
|
// logger.info(
|
||||||
'Loaded mod from directory: ${mod.name} (ID: ${mod.id}) in $modTime ms',
|
// 'Loaded mod from directory: ${mod.name} (ID: ${mod.id}) in $modTime ms',
|
||||||
);
|
// );
|
||||||
yield mod;
|
yield mod;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error('Error loading mod from directory: $modDir');
|
// logger.error('Error loading mod from directory: $modDir');
|
||||||
logger.error('Error: $e');
|
// logger.error('Error: $e');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user