shouldSync method
Should the commands & perms be synced?
Implementation
@override
FutureOr<bool> shouldSync(Iterable<SlashCommandBuilder> commands) async {
final lockFile = File("./nyxx_interactions.lock");
final lockFileMapData = <String, String>{};
for (final c in commands) {
lockFileMapData[c.name] = _LockfileCommand(
c.name,
c.description,
c.guild,
c.defaultPermissions,
c.permissions?.map((p) => _LockfilePermission(p.type, p.id, p.hasPermission)) ?? [],
c.options.map((o) => _LockfileOption(o.type.value, o.name, o.description, o.options ?? [])),
).generateHash();
}
if (!lockFile.existsSync()) {
await lockFile.writeAsString(jsonEncode(lockFileMapData));
return true;
}
final lockfileData = jsonDecode(lockFile.readAsStringSync()) as _LockfileCommand;
if (lockFileMapData == lockfileData) {
return false;
}
await lockFile.writeAsString(jsonEncode(lockFileMapData));
return true;
}