commit a7a529967f0724c267716cd0d4cda7a300c3a900
Author: Qais Patankar <qaisjp@gmail.com>
Date: Mon Jul 15 02:53:09 2019 +0000
diff --git a/bridge/discord/discord.go b/bridge/discord/discord.go
index 4c1c0f4..66c8134 100644
--- a/bridge/discord/discord.go
+++ b/bridge/discord/discord.go
@@ -9512 +9514 @@ func (b *Bdiscord) Connect() error {
b.channelsMutex.Lock()
for _, guild := range guilds {
if guild.Name == serverName || guild.ID == serverName {
- b.channels, err = b.c.GuildChannels(guild.ID)
- b.guildID = guild.ID
- guildFound = true
+ var chans []*discordgo.Channel
+ chans, err = b.c.GuildChannels(guild.ID)
if err != nil {
break
}
+ b.channels = filterChannelsByType(chans, discordgo.ChannelTypeGuildText, false)
+ b.guildID = guild.ID
+ guildFound = true
}
}
b.channelsMutex.Unlock()
diff --git a/bridge/discord/helpers.go b/bridge/discord/helpers.go
index e150d19..5bf6931 100644
--- a/bridge/discord/helpers.go
+++ b/bridge/discord/helpers.go
@@ -8813 +8813 @@ 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"
}
@@ -2113 +21119 @@ 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
+
+}