diff --git a/lib/controllers/settings_controller.dart b/lib/controllers/settings_controller.dart index 73a396a..49516ef 100644 --- a/lib/controllers/settings_controller.dart +++ b/lib/controllers/settings_controller.dart @@ -1,3 +1,5 @@ +import "dart:convert"; + import "package:args/args.dart"; import "package:nexusbot/models/settings.dart"; import "package:riverpod/riverpod.dart"; @@ -6,9 +8,19 @@ class SettingsController extends Notifier { @override Settings? build() => null; - void set(ArgResults args) => state = Settings.fromJson({ - for (final opt in args.options) opt: args.option(opt), - }); + void set(ArgResults args) { + dynamic tryJson(String value) { + try { + return json.decode(value); + } catch (_) { + return value; + } + } + + state = Settings.fromJson({ + for (final opt in args.options) opt: tryJson(args.option(opt) ?? "null"), + }); + } static final provider = NotifierProvider( SettingsController.new,