parent
05e08ce216
commit
46cee1af47
@ -0,0 +1,67 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/bwmarrin/discordgo"
|
||||||
|
)
|
||||||
|
|
||||||
|
const starEmoji = "⭐"
|
||||||
|
|
||||||
|
func starboardAutoReact(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
|
err := s.MessageReactionAdd(m.ChannelID, m.ID, starEmoji)
|
||||||
|
if err != nil {
|
||||||
|
logError(s, "starboardAutoReact", m.ChannelID, m.ID, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func listenToStarboardReact(s *discordgo.Session, m *discordgo.MessageReactionAdd) {
|
||||||
|
if m.Emoji.Name != starEmoji {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
messageTimestamp, err := discordgo.SnowflakeTimestamp(m.MessageID)
|
||||||
|
if err != nil {
|
||||||
|
logError(s, "listenToStarboardReact", "snowflakeTimestamp", m.MessageID, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if time.Now().Sub(messageTimestamp) > 24*time.Hour {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
reacter, err := s.MessageReactions(m.ChannelID, m.MessageID, starEmoji, 5)
|
||||||
|
if err != nil {
|
||||||
|
logError(s, "listenToStarboardReact", "messageReactions", m.ChannelID, m.MessageID, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(reacter) < 5 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
msg, err := s.ChannelMessage(m.ChannelID, m.MessageID)
|
||||||
|
if err != nil {
|
||||||
|
logError(s, "listenToStarboardReact", "channelMessage", m.ChannelID, m.MessageID, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
color := s.State.UserColor(msg.Author.ID, m.ChannelID)
|
||||||
|
if color == 0 {
|
||||||
|
//White as fallback
|
||||||
|
color = 0xFFFFFF
|
||||||
|
}
|
||||||
|
_, err = s.ChannelMessageSendEmbed(
|
||||||
|
"645551408283648000",
|
||||||
|
&discordgo.MessageEmbed{
|
||||||
|
Title: "Starred Message",
|
||||||
|
URL: "https://discordapp.com/channels/" + m.GuildID + "/" + m.ChannelID + "/" + m.MessageID,
|
||||||
|
Color: color,
|
||||||
|
Timestamp: messageTimestamp.Format(time.RFC3339),
|
||||||
|
Author: &discordgo.MessageEmbedAuthor{
|
||||||
|
Name: msg.Author.Username + "#" + msg.Author.Discriminator,
|
||||||
|
IconURL: "https://cdn.discordapp.com/avatars/" + msg.Author.ID + "/" + msg.Author.Avatar + ".png",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
logError(s, "listenToStarboardReact", "channelMessageSendEmbed", err)
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue