mirror of
https://github.com/RPCS3/discord-bot.git
synced 2026-01-31 01:25:22 +01:00
Merge pull request #330 from 13xforever/vnext
Rrecord changes of the piracy filters
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using CompatApiClient.Utils;
|
||||
using CompatBot.Commands.Attributes;
|
||||
using CompatBot.Database;
|
||||
using CompatBot.Database.Providers;
|
||||
@@ -34,7 +35,11 @@ namespace CompatBot.Commands
|
||||
{
|
||||
var wasSuccessful = await PiracyStringProvider.AddAsync(trigger).ConfigureAwait(false);
|
||||
if (wasSuccessful)
|
||||
{
|
||||
await ctx.ReactWithAsync(Config.Reactions.Success, "New trigger successfully saved!").ConfigureAwait(false);
|
||||
var member = ctx.Member ?? ctx.Client.GetMember(ctx.User);
|
||||
await ctx.Client.ReportAsync("🤬 Piracy filter added", $"{member.GetMentionWithNickname()} added a new piracy filter:\n```{trigger.Sanitize()}```", null, ReportSeverity.Low).ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
await ctx.ReactWithAsync(Config.Reactions.Failure, "Trigger already defined.").ConfigureAwait(false);
|
||||
if (wasSuccessful)
|
||||
@@ -46,13 +51,25 @@ namespace CompatBot.Commands
|
||||
public async Task Remove(CommandContext ctx, [Description("Filter IDs to remove, separated with spaces")] params int[] ids)
|
||||
{
|
||||
var failedIds = new List<int>();
|
||||
var removedFilters = new List<string>();
|
||||
foreach (var id in ids)
|
||||
if (!await PiracyStringProvider.RemoveAsync(id).ConfigureAwait(false))
|
||||
{
|
||||
var trigger = await PiracyStringProvider.GetTriggerAsync(id).ConfigureAwait(false);
|
||||
if (await PiracyStringProvider.RemoveAsync(id).ConfigureAwait(false))
|
||||
removedFilters.Add(trigger.Sanitize());
|
||||
else
|
||||
failedIds.Add(id);
|
||||
}
|
||||
|
||||
if (failedIds.Count > 0)
|
||||
await ctx.RespondAsync("Some ids couldn't be removed: " + string.Join(", ", failedIds)).ConfigureAwait(false);
|
||||
else
|
||||
{
|
||||
await ctx.ReactWithAsync(Config.Reactions.Success, $"Trigger{StringUtils.GetSuffix(ids.Length)} successfully removed!").ConfigureAwait(false);
|
||||
var member = ctx.Member ?? ctx.Client.GetMember(ctx.User);
|
||||
var s = removedFilters.Count == 1 ? "" : "s";
|
||||
await ctx.Client.ReportAsync($"🤬 Piracy filter{s} removed", $"{member.GetMentionWithNickname()} removed {removedFilters.Count} piracy filter{s}:\n```\n{string.Join('\n', removedFilters)}\n```", null, ReportSeverity.Medium).ConfigureAwait(false);
|
||||
}
|
||||
await List(ctx).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace CompatBot.Commands
|
||||
var spamChannel = await ctx.Client.GetChannelAsync(Config.BotSpamId).ConfigureAwait(false);
|
||||
inSpecificLocation = $" in {spamChannel.Mention} or bot DMs";
|
||||
}
|
||||
var msg = $"Unknown term `{term.Sanitize()}`. Use `{ctx.Prefix}explain list` to look at defined terms{inSpecificLocation}";
|
||||
var msg = $"Unknown term `{term.Replace('`', '\'').Sanitize()}`. Use `{ctx.Prefix}explain list` to look at defined terms{inSpecificLocation}";
|
||||
await ctx.RespondAsync(msg).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,6 +60,12 @@ namespace CompatBot.Database.Providers
|
||||
return true;
|
||||
}
|
||||
|
||||
public static async Task<string> GetTriggerAsync(int id)
|
||||
{
|
||||
var dbItem = await db.Piracystring.FirstOrDefaultAsync(ps => ps.Id == id).ConfigureAwait(false);
|
||||
return dbItem?.String;
|
||||
}
|
||||
|
||||
public static Task<string> FindTriggerAsync(string str)
|
||||
{
|
||||
string result = null;
|
||||
|
||||
Reference in New Issue
Block a user