From 4f441f3a137dbcf7c935fbf446d9bd5ceafe5309 Mon Sep 17 00:00:00 2001 From: caneleex Date: Tue, 16 Aug 2022 18:40:36 +0200 Subject: [PATCH 1/3] add MentionTypeCommand --- discord/application_command.go | 4 ++++ discord/mentionable.go | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/discord/application_command.go b/discord/application_command.go index 7f58a9e2..2d89b9ff 100644 --- a/discord/application_command.go +++ b/discord/application_command.go @@ -174,6 +174,10 @@ func (c SlashCommand) Version() snowflake.ID { return c.version } +func (c SlashCommand) Mention() string { + return CommandMention(c.id, c.name) +} + func (SlashCommand) applicationCommand() {} var _ ApplicationCommand = (*UserCommand)(nil) diff --git a/discord/mentionable.go b/discord/mentionable.go index 79b27a15..a7cd3b9a 100644 --- a/discord/mentionable.go +++ b/discord/mentionable.go @@ -17,6 +17,7 @@ var ( MentionTypeChannel = MentionType{regexp.MustCompile(`<#(\d+)>`)} MentionTypeEmoji = MentionType{regexp.MustCompile(``)} MentionTypeTimestamp = MentionType{regexp.MustCompile(`-?\d{1,17})(?::(?P[tTdDfFR]))?>`)} + MentionTypeCommand = MentionType{regexp.MustCompile(``)} MentionTypeHere = MentionType{regexp.MustCompile(`@here`)} MentionTypeEveryone = MentionType{regexp.MustCompile(`@everyone`)} ) @@ -57,3 +58,7 @@ func TimestampMention(timestamp int64) string { func FormattedTimestampMention(timestamp int64, style TimestampStyle) string { return fmt.Sprintf("", timestamp, style) } + +func CommandMention(id snowflake.ID, name string) string { + return fmt.Sprintf("", name, id) +} From 1ae0e72f29f2051f9a65ffdc0a172e8d15fe9bcd Mon Sep 17 00:00:00 2001 From: caneleex Date: Tue, 16 Aug 2022 18:53:01 +0200 Subject: [PATCH 2/3] add a comment to CommandMention --- discord/mentionable.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/discord/mentionable.go b/discord/mentionable.go index a7cd3b9a..d9872cf8 100644 --- a/discord/mentionable.go +++ b/discord/mentionable.go @@ -59,6 +59,10 @@ func FormattedTimestampMention(timestamp int64, style TimestampStyle) string { return fmt.Sprintf("", timestamp, style) } -func CommandMention(id snowflake.ID, name string) string { - return fmt.Sprintf("", name, id) +// CommandMention creates a command mention. +// You can also pass a subcommand (and/or a subcommand group respectively) to the path. +// +// mention := CommandMention(id, "command group subcommand") +func CommandMention(id snowflake.ID, path string) string { + return fmt.Sprintf("", path, id) } From 1cbb8506d31ff30651795572afe903fcfc6ee6bd Mon Sep 17 00:00:00 2001 From: caneleex Date: Mon, 22 Aug 2022 21:40:51 +0200 Subject: [PATCH 3/3] rename CommandMention to SlashCommandMention --- discord/application_command.go | 2 +- discord/mentionable.go | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/discord/application_command.go b/discord/application_command.go index 5f0edee9..93a7d536 100644 --- a/discord/application_command.go +++ b/discord/application_command.go @@ -181,7 +181,7 @@ func (c SlashCommand) CreatedAt() time.Time { } func (c SlashCommand) Mention() string { - return CommandMention(c.id, c.name) + return SlashCommandMention(c.id, c.name) } func (SlashCommand) applicationCommand() {} diff --git a/discord/mentionable.go b/discord/mentionable.go index d9872cf8..37b22279 100644 --- a/discord/mentionable.go +++ b/discord/mentionable.go @@ -12,14 +12,14 @@ type MentionType struct { } var ( - MentionTypeUser = MentionType{regexp.MustCompile(`<@!?(\d+)>`)} - MentionTypeRole = MentionType{regexp.MustCompile(`<@&(\d+)>`)} - MentionTypeChannel = MentionType{regexp.MustCompile(`<#(\d+)>`)} - MentionTypeEmoji = MentionType{regexp.MustCompile(``)} - MentionTypeTimestamp = MentionType{regexp.MustCompile(`-?\d{1,17})(?::(?P[tTdDfFR]))?>`)} - MentionTypeCommand = MentionType{regexp.MustCompile(``)} - MentionTypeHere = MentionType{regexp.MustCompile(`@here`)} - MentionTypeEveryone = MentionType{regexp.MustCompile(`@everyone`)} + MentionTypeUser = MentionType{regexp.MustCompile(`<@!?(\d+)>`)} + MentionTypeRole = MentionType{regexp.MustCompile(`<@&(\d+)>`)} + MentionTypeChannel = MentionType{regexp.MustCompile(`<#(\d+)>`)} + MentionTypeEmoji = MentionType{regexp.MustCompile(``)} + MentionTypeTimestamp = MentionType{regexp.MustCompile(`-?\d{1,17})(?::(?P[tTdDfFR]))?>`)} + MentionTypeSlashCommand = MentionType{regexp.MustCompile(``)} + MentionTypeHere = MentionType{regexp.MustCompile(`@here`)} + MentionTypeEveryone = MentionType{regexp.MustCompile(`@everyone`)} ) type Mentionable interface { @@ -59,10 +59,10 @@ func FormattedTimestampMention(timestamp int64, style TimestampStyle) string { return fmt.Sprintf("", timestamp, style) } -// CommandMention creates a command mention. +// SlashCommandMention creates a slash command mention. // You can also pass a subcommand (and/or a subcommand group respectively) to the path. // -// mention := CommandMention(id, "command group subcommand") -func CommandMention(id snowflake.ID, path string) string { +// mention := SlashCommandMention(id, "command group subcommand") +func SlashCommandMention(id snowflake.ID, path string) string { return fmt.Sprintf("", path, id) }