adding reaction support (#2)
- some rework of structure to allow for more puposeful response usage - react and response now live on the message itself - message structs split into own file - readme updated to use new methods Reviewed-on: #2 Co-authored-by: jake <jake.young.dev@gmail.com> Co-committed-by: jake <jake.young.dev@gmail.com>
This commit is contained in:
57
message.go
Normal file
57
message.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package bolt
|
||||
|
||||
import "fmt"
|
||||
|
||||
//built-in Discord reactions
|
||||
type Reaction string
|
||||
|
||||
const (
|
||||
ReactionThumbsUp Reaction = ":+1:"
|
||||
ReactionThumbsDown Reaction = ":-1:"
|
||||
ReactionPointUp Reaction = ":point_up:"
|
||||
ReactionPointDown Reaction = ":point_down:"
|
||||
ReactionHotdog Reaction = ":hotdog:"
|
||||
ReactionGiraffe Reaction = ":giraffe:"
|
||||
ReactionWatermelon Reaction = ":watermelon:"
|
||||
ReactionNoPedestrians Reaction = ":no_pedestrian:"
|
||||
)
|
||||
|
||||
// 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 {
|
||||
Author string //username of message author
|
||||
ID string //discord ID of message author
|
||||
msgID string //id string of message
|
||||
Words []string //words from message split on whitespace
|
||||
Content string //entire message content
|
||||
Channel string //message channel
|
||||
channelID string //id of channel message was sent in
|
||||
Server string //message guild
|
||||
serverID string //id of guild message was sent in
|
||||
Attachments []MessageAttachment
|
||||
sesh *bolt
|
||||
}
|
||||
|
||||
// applies reaction to message
|
||||
func (m *Message) React(emoji Reaction) error {
|
||||
return m.sesh.MessageReactionAdd(m.channelID, m.msgID, fmt.Sprint(emoji))
|
||||
}
|
||||
|
||||
// sends the value of res in response to the message
|
||||
func (m *Message) Respond(res string) error {
|
||||
rep := m.sesh.createReply(res, m.msgID, m.channelID, m.serverID)
|
||||
_, err := m.sesh.ChannelMessageSendComplex(m.channelID, rep)
|
||||
return err
|
||||
}
|
Reference in New Issue
Block a user