From fb1b028ad72b576c7b338d3bc8f436093379dee4 Mon Sep 17 00:00:00 2001 From: "diamondburned (Forefront)" Date: Wed, 8 Apr 2020 21:33:46 -0700 Subject: [PATCH] Bot: Corrected arguments.Emoji's ID field --- bot/extras/arguments/emoji.go | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/bot/extras/arguments/emoji.go b/bot/extras/arguments/emoji.go index 58c53ae..0232c9b 100644 --- a/bot/extras/arguments/emoji.go +++ b/bot/extras/arguments/emoji.go @@ -5,6 +5,7 @@ import ( "regexp" "github.com/diamondburned/arikawa/api/rate" + "github.com/diamondburned/arikawa/discord" ) var ( @@ -14,30 +15,30 @@ var ( ) type Emoji struct { - ID string + ID discord.Snowflake + Name string Custom bool - Name string Animated bool } func (e Emoji) APIString() string { if !e.Custom { - return e.ID + return e.Name } - return e.Name + ":" + e.ID + return e.Name + ":" + e.ID.String() } func (e Emoji) String() string { if !e.Custom { - return e.ID + return e.Name } if e.Animated { - return "" + return "" } else { - return "<:" + e.Name + ":" + e.ID + ">" + return "<:" + e.Name + ":" + e.ID.String() + ">" } } @@ -46,7 +47,7 @@ func (e Emoji) URL() string { return "" } - base := "https://cdn.discordapp.com/emojis/" + e.ID + base := "https://cdn.discordapp.com/emojis/" + e.ID.String() if e.Animated { return base + ".gif" @@ -62,7 +63,7 @@ func (e *Emoji) Usage() string { func (e *Emoji) Parse(arg string) error { // Check if Unicode emoji if rate.StringIsEmojiOnly(arg) { - e.ID = arg + e.Name = arg e.Custom = false return nil @@ -74,10 +75,15 @@ func (e *Emoji) Parse(arg string) error { return ErrInvalidEmoji } + id, err := discord.ParseSnowflake(matches[3]) + if err != nil { + return err + } + e.Custom = true e.Animated = matches[1] == "a" e.Name = matches[2] - e.ID = matches[3] + e.ID = id return nil }