diff --git a/app/http/endpoints/api/panel/multipanelcreate.go b/app/http/endpoints/api/panel/multipanelcreate.go index c12f481..2f0fd24 100644 --- a/app/http/endpoints/api/panel/multipanelcreate.go +++ b/app/http/endpoints/api/panel/multipanelcreate.go @@ -62,7 +62,6 @@ func MultiPanelCreate(ctx *gin.Context) { return } - messageId, err := data.sendEmbed(&botContext, premiumTier > premium.None, panels) if err != nil { var unwrapped request.RestError @@ -212,13 +211,18 @@ func (d *multiPanelCreateData) sendEmbed(ctx *botcontext.BotContext, isPremium b buttons := make([]component.Component, len(panels)) for i, panel := range panels { + var buttonEmoji *emoji.Emoji + if panel.ReactionEmote != "" { + buttonEmoji = &emoji.Emoji{ + Name: panel.ReactionEmote, + } + } + buttons[i] = component.BuildButton(component.Button{ Label: panel.Title, CustomId: panel.CustomId, Style: component.ButtonStyle(panel.ButtonStyle), - Emoji: emoji.Emoji{ - Name: panel.ReactionEmote, - }, + Emoji: buttonEmoji, }) } @@ -240,7 +244,7 @@ func (d *multiPanelCreateData) sendEmbed(ctx *botcontext.BotContext, isPremium b } data := rest.CreateMessageData{ - Embed: e, + Embeds: []*embed.Embed{e}, Components: rows, } diff --git a/app/http/endpoints/api/panel/panelcreate.go b/app/http/endpoints/api/panel/panelcreate.go index 68861a8..7a53fbf 100644 --- a/app/http/endpoints/api/panel/panelcreate.go +++ b/app/http/endpoints/api/panel/panelcreate.go @@ -250,13 +250,15 @@ func (p *panelBody) doValidations(ctx *gin.Context, guildId uint64) bool { return false } - _, validEmoji := p.getEmoji() - if !validEmoji { - ctx.AbortWithStatusJSON(400, gin.H{ - "success": false, - "error": "Invalid emoji. Simply use the emoji's name from Discord.", - }) - return false + if p.Emote != "" { // Allow no emoji + _, validEmoji := p.getEmoji() + if !validEmoji { + ctx.AbortWithStatusJSON(400, gin.H{ + "success": false, + "error": "Invalid emoji. Simply use the emoji itself, or the emoji's name from Discord.", + }) + return false + } } if !p.verifyWelcomeMessage() { @@ -307,6 +309,7 @@ func (p *panelBody) verifyContent() bool { } func (p *panelBody) getEmoji() (emoji string, ok bool) { + p.Emote = strings.TrimSpace(p.Emote) p.Emote = strings.Replace(p.Emote, ":", "", -1) emoji, ok = utils.GetEmoji(p.Emote) @@ -377,19 +380,24 @@ func (p *panelBody) sendEmbed(ctx *botcontext.BotContext, title, customId, emote if !isPremium { // TODO: Don't harcode - e.SetFooter("Powered by ticketsbot.net", "https://cdn.discordapp.com/avatars/508391840525975553/ac2647ffd4025009e2aa852f719a8027.png?size=256") + e.SetFooter("Powered by ticketsbot.net", "https://ticketsbot.net/assets/img/logo.png") + } + + var buttonEmoji *emoji.Emoji + if emote != "" { + buttonEmoji = &emoji.Emoji{ + Name: emote, + } } data := rest.CreateMessageData{ - Embed: e, + Embeds: []*embed.Embed{e}, Components: []component.Component{ component.BuildActionRow(component.BuildButton(component.Button{ Label: title, CustomId: customId, Style: buttonStyle, - Emoji: emoji.Emoji{ - Name: emote, - }, + Emoji: buttonEmoji, Url: nil, Disabled: false, })), diff --git a/frontend/src/components/form/EmojiInput.svelte b/frontend/src/components/form/EmojiInput.svelte index c272890..14a1e53 100644 --- a/frontend/src/components/form/EmojiInput.svelte +++ b/frontend/src/components/form/EmojiInput.svelte @@ -1,7 +1,7 @@