Skip to content

Commit

Permalink
Stickers (#1057)
Browse files Browse the repository at this point in the history
* added in sticker endpoints

* added sticker objects to messages

* add type to Sticker struct
  • Loading branch information
Jordan-Cartwright committed Feb 2, 2022
1 parent 4620fe3 commit aba5dc8
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
6 changes: 6 additions & 0 deletions endpoints.go
Expand Up @@ -31,6 +31,7 @@ var (
EndpointGateway = EndpointAPI + "gateway"
EndpointGatewayBot = EndpointGateway + "/bot"
EndpointWebhooks = EndpointAPI + "webhooks/"
EndpointStickers = EndpointAPI + "stickers/"

EndpointCDN = "https://cdn.discordapp.com/"
EndpointCDNAttachments = EndpointCDN + "attachments/"
Expand Down Expand Up @@ -102,6 +103,8 @@ var (
EndpointGuildEmojis = func(gID string) string { return EndpointGuilds + gID + "/emojis" }
EndpointGuildEmoji = func(gID, eID string) string { return EndpointGuilds + gID + "/emojis/" + eID }
EndpointGuildBanner = func(gID, hash string) string { return EndpointCDNBanners + gID + "/" + hash + ".png" }
EndpointGuildStickers = func(gID string) string { return EndpointGuilds + gID + "/stickers" }
EndpointGuildSticker = func(gID, sID string) string { return EndpointGuilds + gID + "/stickers/" + sID }

EndpointChannel = func(cID string) string { return EndpointChannels + cID }
EndpointChannelPermissions = func(cID string) string { return EndpointChannels + cID + "/permissions" }
Expand All @@ -119,6 +122,9 @@ var (

EndpointGroupIcon = func(cID, hash string) string { return EndpointCDNChannelIcons + cID + "/" + hash + ".png" }

EndpointSticker = func(sID string) string { return EndpointStickers + sID }
EndpointNitroStickersPacks = EndpointAPI + "/sticker-packs"

EndpointChannelWebhooks = func(cID string) string { return EndpointChannel(cID) + "/webhooks" }
EndpointWebhook = func(wID string) string { return EndpointWebhooks + wID }
EndpointWebhookToken = func(wID, token string) string { return EndpointWebhooks + wID + "/" + token }
Expand Down
48 changes: 48 additions & 0 deletions message.go
Expand Up @@ -130,6 +130,9 @@ type Message struct {
// This is a combination of bit masks; the presence of a certain permission can
// be checked by performing a bitwise AND between this int and the flag.
Flags MessageFlags `json:"flags"`

// An array of Sticker objects, if any were sent.
StickerItems []*Sticker `json:"sticker_items"`
}

// UnmarshalJSON is a helper function to unmarshal the Message.
Expand Down Expand Up @@ -189,6 +192,51 @@ type File struct {
Reader io.Reader
}

// StickerFormat is the file format of the Sticker.
type StickerFormat int

// Defines all known Sticker types.
const (
StickerFormatTypePNG StickerFormat = 1
StickerFormatTypeAPNG StickerFormat = 2
StickerFormatTypeLottie StickerFormat = 3
)

// StickerType is the type of sticker.
type StickerType int

// Defines Sticker types.
const (
StickerTypeStandard StickerType = 1
StickerTypeGuild StickerType = 2
)

// Sticker represents a sticker object that can be sent in a Message.
type Sticker struct {
ID string `json:"id"`
PackID string `json:"pack_id"`
Name string `json:"name"`
Description string `json:"description"`
Tags string `json:"tags"`
Type StickerType `json:"type"`
FormatType StickerFormat `json:"format_type"`
Available bool `json:"available"`
GuildID string `json:"guild_id"`
User *User `json:"user"`
SortValue int `json:"sort_value"`
}

// StickerPack represents a pack of standard stickers.
type StickerPack struct {
ID string `json:"id"`
Stickers []Sticker `json:"stickers"`
Name string `json:"name"`
SKUID string `json:"sku_id"`
CoverStickerID string `json:"cover_sticker_id"`
Description string `json:"description"`
BannerAssetID string `json:"banner_asset_id"`
}

// MessageSend stores all parameters you can send with ChannelMessageSendComplex.
type MessageSend struct {
Content string `json:"content,omitempty"`
Expand Down

0 comments on commit aba5dc8

Please sign in to comment.