chore: move MessageEmbedBuilder
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / format (pull_request) Has been cancelled
CI / test (1.13) (pull_request) Has been cancelled
CI / test (1.14) (pull_request) Has been cancelled
CI / test (1.15) (pull_request) Has been cancelled
CI / test (1.16) (pull_request) Has been cancelled
CI / test (1.17) (pull_request) Has been cancelled
CI / test (1.18) (pull_request) Has been cancelled

This commit is contained in:
Siwoo Jeon 2025-05-17 22:10:00 +09:00
parent 6221ca05b9
commit 88a40c83dc
Signed by: migan
GPG key ID: 036E9A8C5E8E48DA
2 changed files with 78 additions and 75 deletions

78
builder.go Normal file
View file

@ -0,0 +1,78 @@
package discordgo
import "time"
// MessageEmbedBuilder for make MessageEmbed struct.
type MessageEmbedBuilder struct {
*MessageEmbed
}
// NewMessageEmbedBuilder creates a new MessageEmbedBuilder struct.
func NewMessageEmbedBuilder() *MessageEmbedBuilder {
return &MessageEmbedBuilder{}
}
// SetTitle sets title for MessageEmbed.
func (b *MessageEmbedBuilder) SetTitle(title string) *MessageEmbedBuilder {
b.MessageEmbed.Title = title
return b
}
// SetDescription sets description for MessageEmbed.
func (b *MessageEmbedBuilder) SetDescription(desc string) *MessageEmbedBuilder {
b.MessageEmbed.Description = desc
return b
}
// SetColor sets color for MessageEmbed.
func (b *MessageEmbedBuilder) SetColor(color int) *MessageEmbedBuilder {
b.MessageEmbed.Color = color
return b
}
// SetThumbnail sets thumbnail for MessageEmbed.
func (b *MessageEmbedBuilder) SetThumbnail(url string) *MessageEmbedBuilder {
b.MessageEmbed.Thumbnail = &MessageEmbedThumbnail{URL: url}
return b
}
// SetImage sets image for MessageEmbed.
func (b *MessageEmbedBuilder) SetImage(url string) *MessageEmbedBuilder {
b.MessageEmbed.Image = &MessageEmbedImage{URL: url}
return b
}
// SetTimestamp sets timestamp for MessageEmbed.
func (b *MessageEmbedBuilder) SetTimestamp(times time.Time) *MessageEmbedBuilder {
b.MessageEmbed.Timestamp = times.Format(time.RFC3339)
return b
}
// SetFooter sets footer for MessageEmbed.
func (b *MessageEmbedBuilder) SetFooter(footer MessageEmbedFooter) *MessageEmbedBuilder {
b.MessageEmbed.Footer = &footer
return b
}
// AddFields adds fields for MessageEmbed.
func (b *MessageEmbedBuilder) AddFields(fields ...*MessageEmbedField) *MessageEmbedBuilder {
b.MessageEmbed.Fields = fields
return b
}
// SetAuthor sets author for MessageEmbed.
func (b *MessageEmbedBuilder) SetAuthor(author MessageEmbedAuthor) *MessageEmbedBuilder {
b.MessageEmbed.Author = &author
return b
}
// SetURL sets url for MessageEmbed.
func (b *MessageEmbedBuilder) SetURL(url string) *MessageEmbedBuilder {
b.MessageEmbed.URL = url
return b
}
// Build to MessageEmbed.
func (b *MessageEmbedBuilder) Build() *MessageEmbed {
return b.MessageEmbed
}

View file

@ -431,81 +431,6 @@ type MessageEmbed struct {
Fields []*MessageEmbedField `json:"fields,omitempty"`
}
// MessageEmbedBuilder for make MessageEmbed struct.
type MessageEmbedBuilder struct {
*MessageEmbed
}
// NewMessageEmbedBuilder creates a new MessageEmbedBuilder struct.
func NewMessageEmbedBuilder() *MessageEmbedBuilder {
return &MessageEmbedBuilder{}
}
// SetTitle sets title for MessageEmbed.
func (b *MessageEmbedBuilder) SetTitle(title string) *MessageEmbedBuilder {
b.MessageEmbed.Title = title
return b
}
// SetDescription sets description for MessageEmbed.
func (b *MessageEmbedBuilder) SetDescription(desc string) *MessageEmbedBuilder {
b.MessageEmbed.Description = desc
return b
}
// SetColor sets color for MessageEmbed.
func (b *MessageEmbedBuilder) SetColor(color int) *MessageEmbedBuilder {
b.MessageEmbed.Color = color
return b
}
// SetThumbnail sets thumbnail for MessageEmbed.
func (b *MessageEmbedBuilder) SetThumbnail(url string) *MessageEmbedBuilder {
b.MessageEmbed.Thumbnail = &MessageEmbedThumbnail{URL: url}
return b
}
// SetImage sets image for MessageEmbed.
func (b *MessageEmbedBuilder) SetImage(url string) *MessageEmbedBuilder {
b.MessageEmbed.Image = &MessageEmbedImage{URL: url}
return b
}
// SetTimestamp sets timestamp for MessageEmbed.
func (b *MessageEmbedBuilder) SetTimestamp(times time.Time) *MessageEmbedBuilder {
b.MessageEmbed.Timestamp = times.Format(time.RFC3339)
return b
}
// SetFooter sets footer for MessageEmbed.
func (b *MessageEmbedBuilder) SetFooter(footer MessageEmbedFooter) *MessageEmbedBuilder {
b.MessageEmbed.Footer = &footer
return b
}
// AddFields adds fields for MessageEmbed.
func (b *MessageEmbedBuilder) AddFields(fields ...*MessageEmbedField) *MessageEmbedBuilder {
b.MessageEmbed.Fields = fields
return b
}
// SetAuthor sets author for MessageEmbed.
func (b *MessageEmbedBuilder) SetAuthor(author MessageEmbedAuthor) *MessageEmbedBuilder {
b.MessageEmbed.Author = &author
return b
}
// SetURL sets url for MessageEmbed.
func (b *MessageEmbedBuilder) SetURL(url string) *MessageEmbedBuilder {
b.MessageEmbed.URL = url
return b
}
// Build to MessageEmbed.
func (b *MessageEmbedBuilder) Build() *MessageEmbed {
return b.MessageEmbed
}
// EmbedType is the type of embed
// https://discord.com/developers/docs/resources/channel#embed-object-embed-types
type EmbedType string