diff --git a/Common/Utilities.cs b/Common/Utilities.cs index 4ffe0b9..8158800 100644 --- a/Common/Utilities.cs +++ b/Common/Utilities.cs @@ -86,4 +86,16 @@ public static class Utilities { } catch (Exception) { } return result ?? input; } + + /// + /// Given an input string, replaces certain special character combinations with information + /// from the specified message. + /// + public static string ProcessTextTokens(string input, SocketMessage m) { + // TODO elaborate on this + // For now, replaces all instances of @_ with the message sender. + return input + .Replace("@_", m.Author.Mention) + .Replace("@\\_", "@_"); + } } diff --git a/Modules/ModCommands/Commands/BanKick.cs b/Modules/ModCommands/Commands/BanKick.cs index 2b41da8..2f44bef 100644 --- a/Modules/ModCommands/Commands/BanKick.cs +++ b/Modules/ModCommands/Commands/BanKick.cs @@ -14,7 +14,7 @@ class Ban : BanKick { // Ban: Unlike kick, the minimum required is just the target ID var result = await Module.Bot.BanAsync(g, msg.Author.ToString(), targetId, PurgeDays, reason, SendNotify); if (result.OperationSuccess && SuccessMessage != null) { - var success = ProcessText(SuccessMessage, msg); + var success = Utilities.ProcessTextTokens(SuccessMessage, msg); await msg.Channel.SendMessageAsync($"{success}\n{result.GetResultString(Module.Bot)}"); } else { await msg.Channel.SendMessageAsync(result.GetResultString(Module.Bot)); @@ -35,7 +35,7 @@ class Kick : BanKick { var result = await Module.Bot.KickAsync(g, msg.Author.ToString(), targetId, reason, SendNotify); if (result.OperationSuccess && SuccessMessage != null) { - var success = ProcessText(SuccessMessage, msg); + var success = Utilities.ProcessTextTokens(SuccessMessage, msg); await msg.Channel.SendMessageAsync($"{success}\n{result.GetResultString(Module.Bot)}"); } else { await msg.Channel.SendMessageAsync(result.GetResultString(Module.Bot)); diff --git a/Modules/ModCommands/Commands/CommandConfig.cs b/Modules/ModCommands/Commands/CommandConfig.cs index 2d4ec87..bda304c 100644 --- a/Modules/ModCommands/Commands/CommandConfig.cs +++ b/Modules/ModCommands/Commands/CommandConfig.cs @@ -36,12 +36,4 @@ abstract class CommandConfig { }; await target.SendMessageAsync(message ?? "", embed: usageEmbed.Build()); } - - protected static string ProcessText(string input, SocketMessage m) { - // TODO elaborate on this - // For now, replaces all instances of @_ with the message sender. - return input - .Replace("@_", m.Author.Mention) - .Replace("@\\_", "@_"); - } } diff --git a/Modules/ModCommands/Commands/Timeout.cs b/Modules/ModCommands/Commands/Timeout.cs index 3864ae0..a106a91 100644 --- a/Modules/ModCommands/Commands/Timeout.cs +++ b/Modules/ModCommands/Commands/Timeout.cs @@ -64,7 +64,7 @@ class Timeout : CommandConfig { var result = await Module.Bot.SetTimeoutAsync(g, msg.Author.AsEntityNameString(), targetUser, TimeSpan.FromMinutes(timeParam), reason, SendNotify); if (result.Success && SuccessMessage != null) { - var success = ProcessText(SuccessMessage, msg); + var success = Utilities.ProcessTextTokens(SuccessMessage, msg); await msg.Channel.SendMessageAsync($"{success}\n{result.ToResultString()}"); } else { await msg.Channel.SendMessageAsync(result.ToResultString()); diff --git a/Modules/RegexModerator/ResponseExecutor.cs b/Modules/RegexModerator/ResponseExecutor.cs index 3124549..e5a1445 100644 --- a/Modules/RegexModerator/ResponseExecutor.cs +++ b/Modules/RegexModerator/ResponseExecutor.cs @@ -229,7 +229,7 @@ class ResponseExecutor { return FromError("Channel or user were not correctly set in configuration."); } if (targetCh == null) return FromError("Could not acquire target channel."); - await targetCh.SendMessageAsync(param[1]); + await targetCh.SendMessageAsync(Utilities.ProcessTextTokens(param[1], _msg)); return FromSuccess($"Sent to {(isUser ? "user DM" : $"<#{targetCh.Id}>")}."); }