diff --git a/lib/game.dart b/lib/game.dart index 248efbf..c4a7b26 100644 --- a/lib/game.dart +++ b/lib/game.dart @@ -149,7 +149,8 @@ class GameServerPageState extends State { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text("Scanning mods..."))); - for (Mod M in settings.inst!.mods) { + for (Mod M in settings.inst!.mods.toList()) { + var index = settings.inst!.mods.indexOf(M); // Assemble final path. String modsPath = PathHelper.builder(settings.game_path) .resolve("mods") @@ -172,6 +173,12 @@ class GameServerPageState extends State { M.mod_pak = name; M.mod_hash = hash; + + print("Discovered mod file: ${name}"); + print("Hash: ${hash}"); + + // Update the mod instance + settings.inst!.mods[index] = M; } } } @@ -179,6 +186,9 @@ class GameServerPageState extends State { setState(() { settings.Write(); }); + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Mods have been scanned"))); }, ), ListTile( diff --git a/lib/mod.dart b/lib/mod.dart index 58beecc..1e14f63 100644 --- a/lib/mod.dart +++ b/lib/mod.dart @@ -5,17 +5,17 @@ part 'mod.g.dart'; @HiveType(typeId: 2) class Mod { - @HiveField(0) - String mod_name; + @HiveField(0, defaultValue: "") + String mod_name = ""; - @HiveField(1) - int mod_id; + @HiveField(1, defaultValue: 0) + int mod_id = 0; - @HiveField(2) - String mod_pak; + @HiveField(2, defaultValue: "") + String mod_pak = ""; - @HiveField(3) - String mod_hash; + @HiveField(3, defaultValue: "") + String mod_hash = ""; bool newMod = false; String _id = "";