- moved reaction to own file
- added message delete method
This commit is contained in:
2025-09-07 01:10:48 -04:00
parent 6504336d01
commit d70dd8c3a4
2 changed files with 74 additions and 66 deletions

View File

@@ -6,71 +6,8 @@ import (
dg "github.com/bwmarrin/discordgo" dg "github.com/bwmarrin/discordgo"
) )
// built-in Discord reactions // the message struct is passed to the command payload providing basic
type Reaction string // message information and needed methods
// a few easy-to-use emojis, Discordgo/Discord API requires them to be saved like this.
const (
ReactionThumbsUp Reaction = "👍"
ReactionThumbsDown Reaction = "👎"
ReactionHundred Reaction = "💯"
ReactionHeart Reaction = "❤️"
ReactionPinkHeart Reaction = "🩷"
ReactionOrangeHeart Reaction = "🧡"
ReactionYellowHeart Reaction = "💛"
ReactionGreenHeart Reaction = "💚"
ReactionBlueHeart Reaction = "💙"
ReactionBlackHeart Reaction = "🖤"
ReactionPointUp Reaction = "☝️"
ReactionPointDown Reaction = "👇"
ReactionHotdog Reaction = "🌭"
ReactionDog Reaction = "🐶"
ReactionCat Reaction = "🐱"
ReactionMonkey Reaction = "🐒"
ReactionGiraffe Reaction = "🦒"
ReactionDuck Reaction = "🦆"
ReactionGoose Reaction = "🪿"
ReactionWatermelon Reaction = "🍉"
ReactionHoney Reaction = "🍯"
ReactionSandwich Reaction = "🥪"
ReactionPepper Reaction = "🌶️"
ReactionNoPedestrians Reaction = "🚷"
ReactionExclamation Reaction = "❗"
ReactionDoubleExclamation Reaction = "‼️"
ReactionSkull Reaction = "💀"
ReactionSpeakingHead Reaction = "🗣️"
ReactionGreenCheck Reaction = "✅"
ReactionDragon Reaction = "🐉"
)
// struct containing message event fields to prevent passing MessageCreate events and holding up routines
type MessageCreateEvent struct {
AuthorUsername string
AuthorID string
AuthorRoles []string
MsgID string
Msg string
MsgChanID string
MsgChanName string
MsgGuildID string
MsgGuildName string
MsgAttachments []*dg.MessageAttachment
}
// information about attachments to messages
type MessageAttachment struct {
ID string
URL string
ProxyURL string
Filename string
ContentType string
Width int
Height int
Size int
DurationSecs float64
}
// represents a Discord message
type Message struct { type Message struct {
Author string //username of message author Author string //username of message author
ID string //discord ID of message author ID string //discord ID of message author
@@ -90,9 +27,42 @@ func (m *Message) React(emoji Reaction) error {
return m.sesh.MessageReactionAdd(m.channelID, m.msgID, fmt.Sprint(emoji)) return m.sesh.MessageReactionAdd(m.channelID, m.msgID, fmt.Sprint(emoji))
} }
// sends the value of res in response to the message // sends response to message
func (m *Message) Respond(res string) error { func (m *Message) Respond(res string) error {
rep := m.sesh.createReply(res, m.msgID, m.channelID, m.serverID) rep := m.sesh.createReply(res, m.msgID, m.channelID, m.serverID)
_, err := m.sesh.ChannelMessageSendComplex(m.channelID, rep) _, err := m.sesh.ChannelMessageSendComplex(m.channelID, rep)
return err return err
} }
// deletes the message from the channel
func (m *Message) Delete() error {
return m.sesh.ChannelMessageDelete(m.channelID, m.msgID, nil)
}
// this struct has all of the needed information from the messageCreate event so that
// commands can be run asynchronously. Passing the messageCreate to payloads can block routines
type MessageCreateEvent struct {
AuthorUsername string
AuthorID string
AuthorRoles []string
MsgID string
Msg string
MsgChanID string
MsgChanName string
MsgGuildID string
MsgGuildName string
MsgAttachments []*dg.MessageAttachment
}
// message attachment details
type MessageAttachment struct {
ID string
URL string
ProxyURL string
Filename string
ContentType string
Width int
Height int
Size int
DurationSecs float64
}

38
reaction.go Normal file
View File

@@ -0,0 +1,38 @@
package bolt
// built-in Discord reactions
type Reaction string
// a few easy-to-use emojis, Discordgo/Discord API requires them to be saved like this.
const (
ReactionThumbsUp Reaction = "👍"
ReactionThumbsDown Reaction = "👎"
ReactionHundred Reaction = "💯"
ReactionHeart Reaction = "❤️"
ReactionPinkHeart Reaction = "🩷"
ReactionOrangeHeart Reaction = "🧡"
ReactionYellowHeart Reaction = "💛"
ReactionGreenHeart Reaction = "💚"
ReactionBlueHeart Reaction = "💙"
ReactionBlackHeart Reaction = "🖤"
ReactionPointUp Reaction = "☝️"
ReactionPointDown Reaction = "👇"
ReactionHotdog Reaction = "🌭"
ReactionDog Reaction = "🐶"
ReactionCat Reaction = "🐱"
ReactionMonkey Reaction = "🐒"
ReactionGiraffe Reaction = "🦒"
ReactionDuck Reaction = "🦆"
ReactionGoose Reaction = "🪿"
ReactionWatermelon Reaction = "🍉"
ReactionHoney Reaction = "🍯"
ReactionSandwich Reaction = "🥪"
ReactionPepper Reaction = "🌶️"
ReactionNoPedestrians Reaction = "🚷"
ReactionExclamation Reaction = "❗"
ReactionDoubleExclamation Reaction = "‼️"
ReactionSkull Reaction = "💀"
ReactionSpeakingHead Reaction = "🗣️"
ReactionGreenCheck Reaction = "✅"
ReactionDragon Reaction = "🐉"
)