forked from jshiffer/matterbridge
Replace role ids in mentions to role names (discord). Closes #133
* The bot needs to have the "Manage Roles" permission for this to work. (see Server settings - Roles - General Permissions)
This commit is contained in:
parent
eddc691fc9
commit
80895deae2
@ -122,6 +122,9 @@ func (b *bdiscord) messageCreate(s *discordgo.Session, m *discordgo.MessageCreat
|
||||
channelName = "ID:" + m.ChannelID
|
||||
}
|
||||
username := b.getNick(m.Author)
|
||||
if len(m.MentionRoles) > 0 {
|
||||
m.Message.Content = b.replaceRoleMentions(m.Message.Content)
|
||||
}
|
||||
b.Remote <- config.Message{Username: username, Text: m.ContentWithMentionsReplaced(), Channel: channelName,
|
||||
Account: b.Account, Avatar: "https://cdn.discordapp.com/avatars/" + m.Author.ID + "/" + m.Author.Avatar + ".jpg"}
|
||||
}
|
||||
@ -180,3 +183,15 @@ func (b *bdiscord) getChannelName(id string) string {
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (b *bdiscord) replaceRoleMentions(text string) string {
|
||||
roles, err := b.c.GuildRoles(b.guildID)
|
||||
if err != nil {
|
||||
flog.Debugf("%#v", string(err.(*discordgo.RESTError).ResponseBody))
|
||||
return text
|
||||
}
|
||||
for _, role := range roles {
|
||||
text = strings.Replace(text, "<@&"+role.ID+">", "@"+role.Name, -1)
|
||||
}
|
||||
return text
|
||||
}
|
||||
|
@ -377,6 +377,7 @@ ShowJoinPart=false
|
||||
#Token to connect with Discord API
|
||||
#You can get your token by following the instructions on
|
||||
#https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token
|
||||
#If you want roles/groups mentions to be shown with names instead of ID, you'll need to give your bot the "Manage Roles" permission.
|
||||
#REQUIRED
|
||||
Token="Yourtokenhere"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user