diff --git a/Common/Utilities.cs b/Common/Utilities.cs
index 11eadb4..f3e96cb 100644
--- a/Common/Utilities.cs
+++ b/Common/Utilities.cs
@@ -89,6 +89,18 @@ public static class Utilities {
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("@\\_", "@_");
+ }
+
///
public static string GetDisplayableUsername(this SocketUser user)
=> GetDisplayableUsernameCommon(user.Username, user.Discriminator, user.GlobalName);
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 083ee0d..33ee347 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}>")}.");
}