From 4236915c5b06d62f87dcae93f64c30e71d34abc5 Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Mon, 18 May 2020 22:36:19 -0800 Subject: [PATCH] Add option to sanitize everyone mentions --- command-manager.go | 7 +++++++ structs.go | 2 ++ 2 files changed, 9 insertions(+) diff --git a/command-manager.go b/command-manager.go index 7e40f1b..d7a263e 100644 --- a/command-manager.go +++ b/command-manager.go @@ -125,6 +125,13 @@ func (c *CommandManager) OnMessage(session *discordgo.Session, m *discordgo.Mess return } + if command.SanitizeEveryone { + for i := 1; i < len(cmd[1:]); i++ { + cmd[i] = strings.ReplaceAll(cmd[i], "@everyone", "@\ufff0everyone") + cmd[i] = strings.ReplaceAll(cmd[i], "@here", "@\ufff0here") + } + } + if !CheckPermissions(session, m.Author.ID, *channel, command.RequiredPermissions) { ctx := Context{ Session: session, diff --git a/structs.go b/structs.go index 19c824e..ee9d63d 100644 --- a/structs.go +++ b/structs.go @@ -48,6 +48,8 @@ type Command struct { Hidden bool // Permissions that are required for the command to function RequiredPermissions Permission + // Should the message content be sanitized before invoking the command + SanitizeEveryone bool // Function to invoke when command is called Invoke CommandInvokeFunc }