From c5066e84e282a8ce37e6d74653d2b83e47b2432f Mon Sep 17 00:00:00 2001 From: Etzelia Date: Tue, 4 May 2021 21:45:49 -0500 Subject: [PATCH] Make reaction roles easier to implement Signed-off-by: Etzelia --- config/canopeas.example.toml | 6 +++++- config/config.go | 5 ++++- discord/discord.go | 6 ++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/config/canopeas.example.toml b/config/canopeas.example.toml index 4af6fcc..cda4eb2 100644 --- a/config/canopeas.example.toml +++ b/config/canopeas.example.toml @@ -89,5 +89,9 @@ help = "Get the invite link" [[message_roles]] channel_id = "0" message_id = "0" +[[message_roles.reactions]] role_id = "0" -emoji = "👍" \ No newline at end of file +emoji = "👍" +[[message_roles.reactions]] +role_id = "0" +emoji = "👎" \ No newline at end of file diff --git a/config/config.go b/config/config.go index fa3efa0..2e7e8d1 100644 --- a/config/config.go +++ b/config/config.go @@ -60,8 +60,11 @@ type Config struct { type MessageRole struct { ChannelID string `toml:"channel_id"` MessageID string `toml:"message_id"` - RoleID string `toml:"role_id"` + Reactions []MessageReaction `toml:"reactions"` +} +type MessageReaction struct { Emoji string `toml:"emoji"` + RoleID string `toml:"role_id"` } type Echo struct { diff --git a/discord/discord.go b/discord/discord.go index 1a834f0..b450a10 100644 --- a/discord/discord.go +++ b/discord/discord.go @@ -79,8 +79,10 @@ func Bot(cfg *config.Config, db *database.Database) (*discordgo.Session, error) if messageRoleMap[messageRole.MessageID] == nil { messageRoleMap[messageRole.MessageID] = make(map[string]string) } - _ = bot.MessageReactionAdd(messageRole.ChannelID, messageRole.MessageID, messageRole.Emoji) - messageRoleMap[messageRole.MessageID][messageRole.Emoji] = messageRole.RoleID + for _, reaction := range messageRole.Reactions { + _ = bot.MessageReactionAdd(messageRole.ChannelID, messageRole.MessageID, reaction.Emoji) + messageRoleMap[messageRole.MessageID][reaction.Emoji] = reaction.RoleID + } } // Init commandMap