diff --git a/discord/channel.go b/discord/channel.go index c90545d0..fffc0c20 100644 --- a/discord/channel.go +++ b/discord/channel.go @@ -1,6 +1,7 @@ package discord import ( + "fmt" "strconv" "strings" "time" @@ -161,6 +162,20 @@ func (ch Channel) Mention() string { return ch.ID.Mention() } +// URL generates a Discord client URL to the channel. If the channel doesn't +// have a GuildID, it will generate a URL with the guild "@me". +func (c Channel) URL() string { + var guildID = "@me" + if c.GuildID.IsValid() { + guildID = c.GuildID.String() + } + + return fmt.Sprintf( + "https://discord.com/channels/%s/%s", + guildID, c.ID.String(), + ) +} + // IconURL returns the URL to the channel icon in the PNG format. // An empty string is returned if there's no icon. func (ch Channel) IconURL() string {