summaryrefslogtreecommitdiffstats
path: root/bridge/discord/helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/discord/helpers.go')
-rw-r--r--bridge/discord/helpers.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/bridge/discord/helpers.go b/bridge/discord/helpers.go
index e150d192..5bf6931d 100644
--- a/bridge/discord/helpers.go
+++ b/bridge/discord/helpers.go
@@ -88,13 +88,13 @@ var (
func (b *Bdiscord) replaceChannelMentions(text string) string {
replaceChannelMentionFunc := func(match string) string {
- var err error
channelID := match[2 : len(match)-1]
-
channelName := b.getChannelName(channelID)
+
// If we don't have the channel refresh our list.
if channelName == "" {
- b.channels, err = b.c.GuildChannels(b.guildID)
+ chans, err := b.c.GuildChannels(b.guildID)
+ b.channels = filterChannelsByType(chans, discordgo.ChannelTypeGuildCategory, true)
if err != nil {
return "#unknownchannel"
}
@@ -211,3 +211,19 @@ func (b *Bdiscord) webhookExecute(webhookID, token string, wait bool, data *disc
return st, nil
}
+
+func filterChannelsByType(chans []*discordgo.Channel, t discordgo.ChannelType, filterOut bool) []*discordgo.Channel {
+ cs := []*discordgo.Channel{}
+ for _, c := range chans {
+ keep := c.Type == t
+ if filterOut {
+ keep = c.Type != t
+ }
+
+ if keep {
+ cs = append(cs, c)
+ }
+ }
+ return cs
+
+}