1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-04-19 16:33:36 +03:00

a more clever workaround

This commit is contained in:
Macintxsh 2024-06-30 14:26:29 +05:00
parent ee2a19409a
commit a4661116de
Signed by: mctaylors
GPG key ID: 4EEF4F949A266EE2
4 changed files with 50 additions and 8 deletions

View file

@ -158,11 +158,22 @@ public sealed class RemindCommandGroup : CommandGroup
return await _feedback.SendContextualEmbedResultAsync(failedEmbed, ct: CancellationToken); return await _feedback.SendContextualEmbedResultAsync(failedEmbed, ct: CancellationToken);
} }
return await AddReminderAsync(timeSpan, text, data, channelId, executor, CancellationToken); var replacedText = text.Replace("`", "");
if (replacedText.Equals(string.Empty))
{
var failedEmbed = new EmbedBuilder()
.WithSmallTitle(Messages.ReminderTextOnlyBanned, bot)
.WithColour(ColorsList.Red)
.Build();
return await _feedback.SendContextualEmbedResultAsync(failedEmbed, ct: CancellationToken);
}
return await AddReminderAsync(timeSpan, text, replacedText, data, channelId, executor, CancellationToken);
} }
private async Task<Result> AddReminderAsync(TimeSpan timeSpan, string text, GuildData data, private async Task<Result> AddReminderAsync(TimeSpan timeSpan, string text, string replacedText,
Snowflake channelId, IUser executor, CancellationToken ct = default) GuildData data, Snowflake channelId, IUser executor, CancellationToken ct = default)
{ {
var memberData = data.GetOrCreateMemberData(executor.ID); var memberData = data.GetOrCreateMemberData(executor.ID);
var remindAt = DateTimeOffset.UtcNow.Add(timeSpan); var remindAt = DateTimeOffset.UtcNow.Add(timeSpan);
@ -177,17 +188,24 @@ public sealed class RemindCommandGroup : CommandGroup
{ {
At = remindAt, At = remindAt,
ChannelId = channelId.Value, ChannelId = channelId.Value,
Text = text, Text = replacedText,
MessageId = response.ID.Value MessageId = response.ID.Value
}); });
var builder = new StringBuilder() var textEqualsReplaced = text.Equals(replacedText);
.AppendBulletPointLine(string.Format(Messages.ReminderText, Markdown.InlineCode(text))) var builder = new StringBuilder().AppendBulletPointLine(
.AppendBulletPoint(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt))); string.Format(Messages.ReminderText, Markdown.InlineCode(replacedText)));
if (!textEqualsReplaced)
{
builder.AppendSubBulletPointLine(Messages.ReminderTextContainedBanned);
}
builder.AppendBulletPoint(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt)));
var embed = new EmbedBuilder().WithSmallTitle( var embed = new EmbedBuilder().WithSmallTitle(
string.Format(Messages.ReminderCreated, executor.GetTag()), executor) string.Format(Messages.ReminderCreated, executor.GetTag()), executor)
.WithDescription(builder.ToString()) .WithDescription(builder.ToString())
.WithColour(ColorsList.Green) .WithColour(textEqualsReplaced ? ColorsList.Green : ColorsList.Yellow)
.WithFooter(string.Format(Messages.ReminderPosition, memberData.Reminders.Count)) .WithFooter(string.Format(Messages.ReminderPosition, memberData.Reminders.Count))
.Build(); .Build();

View file

@ -1196,5 +1196,17 @@ namespace TeamOctolings.Octobot {
return ResourceManager.GetString("SettingsModeratorRole", resourceCulture); return ResourceManager.GetString("SettingsModeratorRole", resourceCulture);
} }
} }
internal static string ReminderTextContainedBanned {
get {
return ResourceManager.GetString("ReminderTextContainedBanned", resourceCulture);
}
}
internal static string ReminderTextOnlyBanned {
get {
return ResourceManager.GetString("ReminderTextOnlyBanned", resourceCulture);
}
}
} }
} }

View file

@ -681,4 +681,10 @@
<data name="SettingsModeratorRole" xml:space="preserve"> <data name="SettingsModeratorRole" xml:space="preserve">
<value>Moderator role</value> <value>Moderator role</value>
</data> </data>
<data name="ReminderTextContainedBanned" xml:space="preserve">
<value>Reminder text contained banned characters.</value>
</data>
<data name="ReminderTextOnlyBanned" xml:space="preserve">
<value>Reminder text contains only banned characters!</value>
</data>
</root> </root>

View file

@ -681,4 +681,10 @@
<data name="SettingsModeratorRole" xml:space="preserve"> <data name="SettingsModeratorRole" xml:space="preserve">
<value>Роль модератора</value> <value>Роль модератора</value>
</data> </data>
<data name="ReminderTextContainedBanned" xml:space="preserve">
<value>Текст напоминания содержал запрещенные символы.</value>
</data>
<data name="ReminderTextOnlyBanned" xml:space="preserve">
<value>Текст напоминания содержит только запрещенные символы!</value>
</data>
</root> </root>