feat: add ButtonBuilder

This commit is contained in:
Siwoo Jeon 2025-05-18 21:55:46 +09:00
parent 7160f1c421
commit 8b62e9a252
Signed by: migan
GPG key ID: 036E9A8C5E8E48DA

View file

@ -76,3 +76,50 @@ func ActionRowBuilder() *ActionsRow {
func (r *ActionsRow) AddComponents(components ...MessageComponent) {
r.Components = append(r.Components, components...)
}
// ButtonBuilder creates new Button struct.
func ButtonBuilder() *Button {
return &Button{}
}
// SetCustomID sets customID for Button.
func (b *Button) SetCustomID(customID string) *Button {
b.CustomID = customID
return b
}
// SetLabel sets label for Button.
func (b *Button) SetLabel(label string) *Button {
b.Label = label
return b
}
// SetStyle sets style for Button.
func (b *Button) SetStyle(style ButtonStyle) *Button {
b.Style = style
return b
}
// SetEmoji sets emoji for Button.
func (b *Button) SetEmoji(emoji ComponentEmoji) *Button {
b.Emoji = &emoji
return b
}
// SetURL sets URL for Button.
func (b *Button) SetURL(url string) *Button {
b.URL = url
return b
}
// SetDisabled sets disabled for Button.
func (b *Button) SetDisabled(disabled bool) *Button {
b.Disabled = disabled
return b
}
// SetSKUID sets sku id for Button.
func (b *Button) SetSKUID(skuID string) *Button {
b.SKUID = skuID
return b
}