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 }