diff --git a/locale/Messages.resx b/locale/Messages.resx
index a8d6eea..84d7fa7 100644
--- a/locale/Messages.resx
+++ b/locale/Messages.resx
@@ -594,10 +594,10 @@
You don't have any reminders created!
-
- {0} setting has been reset
+
+ Setting {0} reset
-
+
All settings have been reset
diff --git a/locale/Messages.ru.resx b/locale/Messages.ru.resx
index 7f6b382..abeaf88 100644
--- a/locale/Messages.ru.resx
+++ b/locale/Messages.ru.resx
@@ -594,10 +594,10 @@
У вас нет созданных напоминаний!
-
+
Настройка {0} сброшена
-
+
Все настройки были сброшены
diff --git a/locale/Messages.tt-ru.resx b/locale/Messages.tt-ru.resx
index 6b8ae5b..fb01e72 100644
--- a/locale/Messages.tt-ru.resx
+++ b/locale/Messages.tt-ru.resx
@@ -594,10 +594,10 @@
ты еще не крафтил напоминалки
-
+
{0} откачен к заводским
-
+
откатываемся к заводским...
diff --git a/src/Commands/SettingsCommandGroup.cs b/src/Commands/SettingsCommandGroup.cs
index c5fd6ac..fb0eb45 100644
--- a/src/Commands/SettingsCommandGroup.cs
+++ b/src/Commands/SettingsCommandGroup.cs
@@ -261,19 +261,23 @@ public class SettingsCommandGroup : CommandGroup
if (setting is not null)
{
- return await ResetSettingAsync(cfg, currentUser, AllOptions[(int)setting], CancellationToken);
+ return await ResetSingleSettingAsync(cfg, currentUser, AllOptions[(int)setting], CancellationToken);
}
return await ResetAllSettingsAsync(cfg, currentUser, CancellationToken);
}
- private async Task ResetSettingAsync(JsonNode cfg, IUser currentUser,
+ private async Task ResetSingleSettingAsync(JsonNode cfg, IUser currentUser,
IOption option, CancellationToken ct = default)
{
- option.Reset(cfg);
+ var resetResult = option.Reset(cfg);
+ if (!resetResult.IsSuccess)
+ {
+ return Result.FromError(resetResult.Error);
+ }
var embed = new EmbedBuilder().WithSmallTitle(
- string.Format(Messages.SettingsResetOptional, option.Name), currentUser)
+ string.Format(Messages.SingleSettingReset, option.Name), currentUser)
.WithColour(ColorsList.Green)
.Build();
@@ -285,10 +289,14 @@ public class SettingsCommandGroup : CommandGroup
{
foreach (var option in AllOptions)
{
- option.Reset(cfg);
+ var resetResult = option.Reset(cfg);
+ if (!resetResult.IsSuccess)
+ {
+ return Result.FromError(resetResult.Error);
+ }
}
- var embed = new EmbedBuilder().WithSmallTitle(Messages.SettingsReset, currentUser)
+ var embed = new EmbedBuilder().WithSmallTitle(Messages.AllSettingsReset, currentUser)
.WithColour(ColorsList.Green)
.Build();
diff --git a/src/Data/Options/IOption.cs b/src/Data/Options/IOption.cs
index 1ddf5f8..42138dc 100644
--- a/src/Data/Options/IOption.cs
+++ b/src/Data/Options/IOption.cs
@@ -8,9 +8,5 @@ public interface IOption
string Name { get; }
string Display(JsonNode settings);
Result Set(JsonNode settings, string from);
-
- public void Reset(JsonNode settings)
- {
- settings[Name] = null;
- }
+ Result Reset(JsonNode settings);
}
diff --git a/src/Data/Options/Option.cs b/src/Data/Options/Option.cs
index c96b6ac..a62eb04 100644
--- a/src/Data/Options/Option.cs
+++ b/src/Data/Options/Option.cs
@@ -48,4 +48,10 @@ public class Option : IOption
var property = settings[Name];
return property != null ? property.GetValue() : DefaultValue;
}
+
+ public Result Reset(JsonNode settings)
+ {
+ settings[Name] = null;
+ return Result.FromSuccess();
+ }
}
diff --git a/src/Messages.Designer.cs b/src/Messages.Designer.cs
index b65c668..b45ae70 100644
--- a/src/Messages.Designer.cs
+++ b/src/Messages.Designer.cs
@@ -1002,15 +1002,15 @@ namespace Boyfriend {
}
}
- internal static string SettingsReset {
+ internal static string SingleSettingReset {
get {
- return ResourceManager.GetString("SettingsReset", resourceCulture);
+ return ResourceManager.GetString("SingleSettingReset", resourceCulture);
}
}
- internal static string SettingsResetOptional {
+ internal static string AllSettingsReset {
get {
- return ResourceManager.GetString("SettingsResetOptional", resourceCulture);
+ return ResourceManager.GetString("AllSettingsReset", resourceCulture);
}
}
}
diff --git a/src/Services/GuildDataService.cs b/src/Services/GuildDataService.cs
index b07755d..e3c0b96 100644
--- a/src/Services/GuildDataService.cs
+++ b/src/Services/GuildDataService.cs
@@ -44,6 +44,7 @@ public sealed class GuildDataService : IHostedService
public async Task SaveAsync(CancellationToken ct)
{
+ _logger.LogInformation("Saving guild data...");
var tasks = new List();
var datas = _datas.Values.ToArray();
foreach (var data in datas)